问题标签 [rectangles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4453 浏览

algorithm - 合并和分割重叠的矩形以产生不重叠的矩形

我正在寻找如下算法:

给定一组可能重叠的矩形(所有这些矩形都“不旋转”,可以统一表示为(左、上、右、下)连音等...),它返回一组最小的(非旋转)占据相同区域的非重叠矩形。

乍一看似乎很简单,但事实证明很棘手(至少要有效地完成)。

这个/想法/指针有一些已知的方法吗?

不一定是最小但启发式小集的方法也很有趣,产生任何有效输出集的方法也很有趣。

0 投票
2 回答
12016 浏览

c# - 使用 XNA 在游戏窗口中显示矩形

我想将我的游戏网格划分为一组矩形。每个矩形为 40x40,每列有 14 个矩形,共 25 列。这涵盖了 560x1000 的游戏区域。

这是我设置的用于在游戏网格上制作第一列矩形的代码:

我很确定这是可行的,但我当然无法确认,因为矩形不会在屏幕上呈现,我无法亲眼看到它们。为了调试目的,我想做的是渲染一个边框,或者用颜色填充矩形,这样我就可以在游戏本身上看到它,只是为了确保它有效。

有没有办法做到这一点?或者任何相对简单的方法我可以确保这有效?

非常感谢。

0 投票
1 回答
476 浏览

java - Java 游戏 - 绘制建筑物的最简单方法

这是我第一次做 Java GUI 的东西,我有几个问题。我正在制作一个简单的横向卷轴游戏——特别是在计划它。窗口将是 800x800。

随着游戏滚动(每 40 像素左右),将会绘制建筑物。我想我会制作一个 900 像素的黑色矩形,然后将其副本设置为不同的像素高度(以改变新建筑物的高度)。然后矩形的底部将自动被剪裁。

(1)这行得通吗?

在屋顶上方的天空中,我将让目标飞过,可以点击并击落以获得积分。我在想我会为目标制作一个 ImageIcon,然后将其绘制在屏幕上移动。但我认为很难跟踪目标坐标然后获得鼠标点击坐标然后检查它们是否匹配。

(2) 有没有简单的方法来判断目标是否被点击击中(没有很多坐标和数学)?

从左到右,屋顶上还有滑板手滑冰。我在想我会在他身后放置一个隐藏的矩形,然后查看它是否与给定的矩形屋顶相交,以判断他何时着陆。但问题是,在他进入屋顶之前,它们不会相交。我希望他就在屋顶上方。

我怎样才能知道滑板手何时就在屋顶上方(没有大量的坐标数学)?

0 投票
1 回答
11142 浏览

c# - 如何在 WPF 中动态创建矩形?

我正在尝试创建矩形,矩形的数量取决于从数据库传递的数据。例如,如果 number = 5,程序将生成 5 个矩形。此外,这些矩形必须能够遵循我的矩形属性设置,例如高度、宽度、颜色......将它们放在最后一行。

有没有办法做到这一点?

我正在使用 WPF 和 C#。

谢谢你。

0 投票
5 回答
833 浏览

algorithm - 在二维平面上反转一组矩形

我有一个整数维度的矩形平面。在这个平面内部,我有一组不相交的矩形(整数维度和整数坐标)。

我的问题是如何有效地找到这个集合的倒数;即不包含在子矩形中的平面部分。自然地,这些点的集合形成了一组矩形——我感兴趣的正是这些。

我当前的、幼稚的解决方案使用布尔矩阵(平面的大小)并通过将点 i,j 设置为 0(如果它包含在子矩形内)来工作,否则设置为 1。然后我遍历矩阵的每个元素,如果它是 1(自由)尝试从该点向外“增长”一个矩形。唯一性不是问题(任何合适的矩形集都可以)。

有没有算法可以更有效地解决这样的问题?(即,无需求助于布尔矩阵。

0 投票
1 回答
250 浏览

objective-c - 如何创建 Core Data 实体的图形绘图?

我正在尝试创建核心数据实体的图形表示。我有一个自定义视图(NSView 的子类),将在其中进行绘图。我的实体具有名称、宽度和高度属性。当我单击“添加”按钮添加新模型对象时,我还想为在自定义视图中绘制的每个模型对象创建一个简单的矩形。我为数据设置了表格视图,它们运行良好。
我是否在自定义视图 nib 文件中放置一个数组控制器和一个对象实例,并以某种方式使用绑定?

0 投票
1 回答
1962 浏览

opengl - 截锥体剔除矩形问题

我正在尝试在我的 OpenGL 2d 游戏中实现截锥剔除。在这一点上,我的游戏中唯一的几何对象是矩形,所以我认为这很容易,但我得到了意想不到的结果。我已经设置了一个对称的透视投影,其视场角为 45 度,近平面和远平面分别为 0.01 和 50。眼睛矢量始终平行于 z 轴,相机只能沿 x 和 y 轴移动。

我的想法是在我试图剔除的矩形的 z 坐标处获取相机当前可见的世界空间的矩形区域。因为相机正在看平截头体的中心,所以我计算到这个可见矩形区域边缘的距离如下:

然后我在相机的 x 和 y 坐标之间添加和减去这个距离,以获得最大和最小可见 x 和 y,然后测试给定的矩形以查看它是否在这些值之间。

我的问题是我在这里是否走在正确的轨道上,以及为什么当我在 z=5 有一个物体时,上面的公式返回一个小得离谱的值(某物 *10^-37),在 ( 0,0,0)?

0 投票
9 回答
26779 浏览

lua - 如何计算两个矩形之间的距离?(背景:Lua 中的游戏。)

给定两个具有 x、y、宽度、高度(以像素为单位)和以度为单位的旋转值的矩形——我如何计算它们的轮廓彼此之间的最近距离?

背景:在一个用 Lua 编写的游戏中,我随机生成地图,但希望确保某些矩形彼此不会太近——这是必需的,因为如果矩形进入某个近距离位置,地图将变得无法解决,如一个球需要在他们之间传递。速度不是一个大问题,因为我没有很多矩形,并且每个级别只生成一次地图。我在 StackOverflow 上找到的以前的链接是这个这个

提前谢谢了!

0 投票
3 回答
4623 浏览

geometry - 两个矩形之间的差异(XOR),作为矩形?

我正在寻找一种简单的方法来计算两个矩形之间的差异。我的意思是属于矩形之一的所有点,但不属于两者(所以它就像 XOR)。

在这种情况下,矩形是轴对齐的,所以只有直角。我相信差异区域可以用0-4个矩形表示(如果两个矩形相同,则为0,如果只有一个边缘不同,则为1,一般情况下为4),我想将差异区域作为列表的矩形。

您也可以将其视为在移动/调整实心矩形时必须更新的屏幕区域。

示例:将矩形“a”的宽度加倍 - 我想要添加的区域 (R)。

相交矩形(a 和 b) - 我想要矩形中 T、L、R 和 B 给出的区域(可能的其他分区),但不包括 X:

我更喜欢 python 解决方案/库,但任何强大的算法都会有所帮助。

0 投票
5 回答
3653 浏览

algorithm - 平铺(可扩展)堆叠算法

这是问题所在。我有大小为 1 的矩形画布。所以它的坐标系为(0.0 ... 1.0 - x 和 0.0 ... 1.0 - y)。

我也有一些瓷砖。瓷砖也是矩形。它们有不同的尺寸,瓷砖的数量是一个变量。

我想在矩形画布中堆叠瓷砖,从 0.0 到 1.0(从左到右,从上到下):

1)瓷砖必须适合画布(但要尽可能多地填充空间)

2) 必须缩放图块(如果它们不适合),每个图块应按相同的量缩放(它们必须保持相同的比例)。

3)想象你手里拿着这个“瓷砖”,你把它们一个接一个地放在这个画布上

4)它几乎像“TreeMap算法”但是 - 瓷砖的形状必须相同(矩形),我不需要填充画布的所有空间

这是我想要得到的

有没有人可以向我展示任何类似 C 语言(C、C++、Java、C#)的算法?

*我试过这个。

1)我计算了瓷砖的面积,然后我计算了瓷砖面积的总和(例如:我有两个瓷砖,一个面积为 2,另一个面积为 1,这意味着我的总和为 3)

2)然后我计算每个瓷砖在“总面积”中的“比例”(例如:2/3和1/3)

3) 然后通过 Math.sqrt(x) 计算矩形块的大小(例如:Math.sqrt(2/3))

4)然后一张一张地画瓷砖……

但这并不总是有效。有时我会让瓷砖脱离画布..*