问题标签 [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 投票
3 回答
1560 浏览

optimization - 最优脏矩形集

我在这里寻找一种算法,独立于特定的编程语言。

问题:

我们有一个二维显示区域(想想简单的像素缓冲区)。周期性地改变一些像素。我们需要找到一组矩形来封装所有变化的像素。

计算一个包含所有更改像素的单个可能很大的矩形将是微不足道的,但也是不可取的。我们宁愿有多个、更小、更紧密的矩形,直到指定的最小尺寸(这是一个可以改变的变量)。

例如,假设在整个显示区域内,左上角的几个像素发生了变化,右下角的几个像素发生了变化。我们不想计算整个区域的单个脏矩形 - 我们需要两个脏矩形:左上角的一个小矩形和右下角的一个小矩形。

性能是至关重要的,因此这个问题。

这个问题一直都在出现,我想肯定是在视频编解码器和远程桌面压缩领域。在我的例子中,在涉及多个用户同时在共享区域中绘图的图形图像处理过程中,这是一个反复出现的问题。

有谁知道为此发布的算法或知道您过去使用过的解决方案?

谢谢!

0 投票
1 回答
1508 浏览

java - Java:帮助确定两个矩形之间的碰撞

我正在创建一个游戏,pacman 专门作为我课程的一部分,并且在使用 Rectangles 进行碰撞检测时遇到了问题。

我遇到的问题是,即使在屏幕上可以清楚地看到字符没有碰撞,检查交叉点实际上总是返回 true。下面的输出解释了我的意思:

Pacman 详细信息:x 17.0 y 16.0 Inky 详细信息:x 22.0 y 13.0 调用 intersects() 后的碰撞:true Pacman 详细信息:x 18.0 y 16.0 Inky 详细信息:x 23.0 y 13.0 调用 intersects() 后的碰撞:true

我的矩形设置如下:

高度和宽度已被硬编码以用于测试目的,但这些是实际图像大小。

每次重新绘制 JPanel 时,我都会按如下方式检查碰撞:

在这个时间点上,我几乎没有关于如何解决这个问题的想法,所以你们可以提供的任何建议将不胜感激!

0 投票
3 回答
22455 浏览

algorithm - Algorithm for finding the fewest rectangles to cover a set of rectangles without overlapping

I have a set of rectangles and I would like to "reduce" the set so I have the fewest number of rectangles to describe the same area as the original set. If possible, I would like it to also be fast, but I am more concerned with getting the number of rectangles as low as possible. I have an approach now which works most of the time.

Currently, I start at the top-left most rectangle and see if I can expand it out right and down while keeping it a rectangle. I do that until it can't expand anymore, remove and split all intersecting rectangles, and add the expanded rectangle back in the list. Then I start the process again with the next top-left most rectangle, and so on. But in some cases, it doesn't work. For example: enter image description here

With this set of three rectangles, the correct solution would end up with two rectangles, like this: enter image description here

However, in this case, my algorithm starts by processing the blue rectangle. This expand downwards and splits the yellow rectangle (correctly). But then when the remainder of the yellow rectangle is processed, instead of expanding downwards, it expands right first and takes back the portion that was previously split off. Then the last rectangle is processed and it can't expand right or down, so the original set of rectangles is left. I could tweak the algorithm to expand down first and then right. That would fix this case, but it would cause the same problem in a similar scenario that was flipped.

Edit: Just to clarify, the original set of rectangles do not overlap and do not have to be connected. And if a subset of rectangles are connected, the polygon which completely covers them can have holes in it.

0 投票
1 回答
5462 浏览

java - 旋转矩形的Java碰撞检测?

我正在编写我的第一个 java 游戏,到目前为止:

我制作了一个可以与 WSAD 一起四处走动的矩形,他总是面向鼠标指向的地方。此外,如果您单击,他会在您的鼠标指向的地方发射子弹(并且子弹会旋转以朝向该方向)。我还制造了跟随你的敌人,它们会旋转以面向你的角色。我遇到的问题是我编写的碰撞检测仅检测对象(角色、敌人和子弹)在旋转之前的碰撞(使用.intersects())。这意味着它们身体的某些部分在绘制时会重叠。

我一直在环顾四周,但没有找到任何我理解或适用于我的情况的解决方案。到目前为止,我一直在为每个对象旋转我的 Graphics2D 网格,所以它们实际上并没有被旋转,只是被绘制出来。有没有办法我可以实际旋转它们的形状,然后使用类似 .intersects() 的东西?

任何帮助或建议表示赞赏。

这是我用来查看它是否会通过在 x 轴上移动而发生碰撞的方法:

0 投票
5 回答
2726 浏览

algorithm - 将图像分割成更小的图像的算法,减少了空白的数量并指定了矩形的最大数量

我正在寻找一种算法,可以将图像分割成更小的图像,但有一些限制。一个限制是使用最少的“空白”,意思是空像素。另一种是指定最大数量的图像来分割它。

例如,让我们看看下面的图像。里面有很多“空白”。我想把这些图像分成几个其他的图像,这样我就可以减少这个图像占用的内存量,也可以减少这个图像需要的“绘图”量。

假设我希望将图像分成最多 4 个图像,可能的解决方案如下所示。

有没有人有这方面的算法,或者知道这样做的算法的名称?我一直在寻找一些相关的算法,但我发现的算法没有考虑空白,例如它们将图像分割成仅覆盖非透明像素的矩形,从而产生大量的矩形。我正在使用的真实数据是 1024*1024 像素的图像,我希望将它们减少到最多 16 个部分。诀窍是使用最少的空白提取 16 个图像。

0 投票
1 回答
1595 浏览

c# - StackPanel 中的矩形

我正在尝试在堆栈面板中插入多个矩形,但我不断收到错误消息“元素已经是另一个元素的子元素。”。如果我使用画布,也会发生同样的事情。

例子:

...在列表中添加一些矩形

我希望能够在水平方向上动态插入矩形。根据互联网,我应该能够做到这一点(至少手动)但是......

怎么办,怎么办?:)

0 投票
1 回答
665 浏览

collision-detection - 使用旋转矩形进行碰撞处理

我即将开发一个小 2D 游戏。视角是自上而下的,所以你只能看到玩家的Had。您可以使用 WASD 移动 Player,他和他的 Collision Box 会在 Player 的中心旋转到鼠标位置。世界中有一些旋转的墙,玩家可以通过这些墙进行碰撞。

我有一个带有 2 个旋转矩形的碰撞检测功能,但我不知道如何处理它。

有人有一个功能,带走 2 个旋转的碰撞框并给我正确的位置。或者有人有这样一个问题的例子吗?

0 投票
1 回答
2151 浏览

screen - 屏幕捕获 OCR 的特定屏幕区域

有谁知道任何库或想法如何实现可以与 OCR 一起使用的屏幕截图?

我需要的是能够在屏幕上记录 3 或 4 个矩形(忽略这些区域之外),然后可以用来识别希望在某个时间点出现在这些区域内的文本。

理想情况下 vb.net / c#.net 或类似的会很有用......

有没有人有这方面的经验,或者可以提供一些有用的建议?

非常感谢

0 投票
1 回答
227 浏览

wpf - 如何将矩形的 RadiusX 绑定到矩形的 ActualHeight 并将其乘以 Expression Blend 4(或 VS)中的某个数字?

现在我正在“作弊”并使用以下内容:

x:Code在运行时完美运行并完成了我想要的。但我真的希望它通过执行以下操作立即改变Artboard

但是没有办法包括这个.5*(...)有没有另一种方法来完成这个?

0 投票
3 回答
1366 浏览

wpf - 如何在 WPF 的矩形中找到 UIElements?

我需要UIElement在(矩形/区域/边界)中找到 s。

MainWindow 我正在执行以下操作:

  • 我将鼠标向下注册为起始位置。
  • 我注册了鼠标向上的位置。
  • 现在我需要在开始位置和结束位置之间的矩形中找到 ll(按钮、文本框等)。

我在 msdn 中找到了这种HitTest方法,但这只是为了一点。我认为,遍历已建立的矩形中的所有点是一场性能灾难。

http://msdn.microsoft.com/en-us/library/ms752097.aspx

我的代码基于 MVVM 模式:

还有其他想法或更好的方法吗?

谢谢