标签: rectangles

反向矩形填料

我有一个连接的形状,由放在一起的正方形组成,例如,取一个方形纸,沿着现有的线条绘制一条线,该线条在其开始处结束并且不会交叉.

现在的目标是找到一个算法(而不是强力),用尽可能少的非重叠矩形填充这个形状.

我正在寻找最佳解决方案.从图像中可以看出,天真贪婪的方法(采取最大的矩形)不起作用.

最佳 (最佳)

贪婪 (贪婪)

我的场景是顶点缩减,但我确信还有其他用例.

注意:此问题似乎很基本,但我无法在其他地方找到解决方案.还有,这个问题NP难吗?

编辑:我刚刚意识到,在我的场景中,用尽可能少的非重叠三角形填充形状会产生更好的结果.

algorithm packing rectangles vertices

5
推荐指数
1
解决办法
549
查看次数

Pygame绘制矩形

我正在制作一个需要知道如何在python 3.2中绘制矩形的游戏。

我检查了很多资源,但没有一个确切地显示如何去做。

谢谢!

python pygame rectangles 2d-games

5
推荐指数
4
解决办法
6万
查看次数

指向矩形内部-在对角线的哪一侧?

因此,我有一个分为两个三角形的矩形,并且有一个点:

长方形

我知道矩形的四个顶点(A,B,C和D)的坐标,也知道P的坐标。我需要知道的是两个三角形中的哪个是点。

我认为这是一件非常简单的事情,但是显然我自己无法弄清楚。

有什么帮助吗?

rectangles coordinates diagonal

5
推荐指数
1
解决办法
796
查看次数

边界矩形碰撞 - 球跳过桨的错误一侧

我正在制作Pong游戏,我遇到了一个问题.当球(一个矩形)与球拍下方或上方的球拍(或球棒)碰撞时,我得到一个奇怪的错误,球进入矩形并左右 - 左 - 右达到高速(因为我添加了)加速)并在对面跳出来.我知道为什么会发生这个错误:

if (ballrec.Intersects(player1rec)
        && ball.x <= 20
        && ball.y + 20 >= player.y
        && ball.y <= player.y + 100) //checks the front rebound-here's the bug
{
    ball.vx *= -1; //changes x-direction
    if (ball.vx < 0)
        ball.vx -= 1; //increases x-velocity
    effect.Play();
    if (R.Next(4) == 0)
    {
        if (ball.vy < 0) ball.vy--;
        else ball.vy++; //increases y-velocity on a special occasion
    }
}
else
{
    if (ballrec.Intersects(player1rec))
    {
        ball.vy *= -1;
        effect.Play();
    }
}
Run Code Online (Sandbox Code Playgroud)

ball.vy = velocity y-axis:我将它乘以-1以改变方向 …

c# xna collision-detection rectangles collision

5
推荐指数
1
解决办法
498
查看次数

查找覆盖给定直线简单多边形的最小矩形集

对于碰撞检测,我想使用尽可能少的矩形将位图转换为一组矩形.标题中描述了对该问题的更正式描述.一个例子:

程序员艺术

对于多种解决方案的断路器,如果所有矩形组合所覆盖的总面积最大化,我更喜欢它.例如,上图中的蓝色矩形可能会更小,但这可能是一个不太理想的解决方案.

这个问题有更常见的名称吗?有文献吗?或者是一种提供最佳解决方案的简单算法?

algorithm rectangles

5
推荐指数
1
解决办法
832
查看次数

如何在SDL2中旋转矩形?

我打算制作一款游戏,我想为这款游戏制作一些背景动画.其中一个动画是旋转矩形.我看了一遍,我找不到任何形式的数学或逻辑,允许我旋转一个矩形(SDL_Rect是具体的,但你可能已经知道).

我无法弄清楚自己的数学,我真的没有任何工作代码,所以我无法显示任何东西.

基本上我正在寻找某种类型的逻辑,我可以应用矩形的坐标,这样每当主游戏循环循环时,它将旋转矩形一定程度的度数.

c++ sdl rotation rectangles

5
推荐指数
1
解决办法
3717
查看次数

基线位于x轴上的最大空矩形

原始问题:问题2

在高度为500且宽度为10 ^ 5的矩形空间中,我们给出N个点.

我们应该找出最大的子矩形,其基部位于x轴上,并且不包含其正确内部的任何点(但可以在其边缘包含它们).

我尝试了一种O(宽度^ 2)算法:

#include <iostream>
#include <algorithm>

const int nWidth = 100000;
const int nHeight = 500;

int main(){

  int *nMaxHeights = new int[nWidth];
  std::fill (nMaxHeights, nMaxHeights+nWidth, nHeight);

  int N;
  std::cin >> N;
  for (int x,y,iii=0; iii < N; iii++){
    std::cin >> x >> y;
    nMaxHeights[x] = std::min(y+1, nMaxHeights[x]);
  }

  int maxArea = 0;
  for (int jjj,iii=0; iii < nWidth; iii++){
    for (jjj=iii; jjj < nWidth; jjj++){
      if (nMaxHeights[jjj] < nMaxHeights[iii])
        break;
    }
    maxArea = std::max((jjj-iii+1)*nMaxHeights[iii],maxArea); …
Run Code Online (Sandbox Code Playgroud)

algorithm rectangles computational-geometry

5
推荐指数
1
解决办法
179
查看次数

在pygame中旋转一个矩形(不是图像)

在pygame中,我pygame.draw.rect(screen, color, rectangle)在程序中使用了所有矩形。我希望能够将这些矩形旋转到任意角度。我已经看到以下代码来旋转图像,但是我的问题是RECTANGLES

pygame.transform.rotate(image, angle)
Run Code Online (Sandbox Code Playgroud)

但是我正在使用矩形,但是我没有可以旋转的图像或“表面”。当我尝试旋转一个矩形

rect = pygame.draw.rect(screen, self.color, self.get_rectang())
rotatedRect = pygame.transform.rotate(rect, self.rotation)
screen.blit(rotatedRect)
Run Code Online (Sandbox Code Playgroud)

这给出TypeError: must be pygame.Surface, not pygame.Rect了.rotate()

我的问题是,如何(x,y,w,h)在pygame中旋转a并显示RECTANGLE 而不是图像。

这是“潜在重复项”的链接文章不是重复项。一个答案解释了旋转矩形的后果,另一个答案使用代码旋转图像。

python pygame rotation rectangles

5
推荐指数
2
解决办法
1万
查看次数

如何检测矩形中的矩形?

我有左上角的坐标和矩形列表的右下角说(a,b)和(c,d).我想检测并删除矩形内的矩形.可以留下重叠的矩形.

我有一个10,000个矩形的数据集,我想要一个有效的方法来解决这个问题.

目前我这样做,

import pandas

data = pd.read_csv('dataset.csv')

l = list(range(len(data)-1))

for i in range(len(data)):
    length = len(l)
    if i >= length:
        break
    for j in range(i+1, length):
        if j >= len(l):
           break
        if (data.iloc[l[i]]['a'] >= data.iloc[l[j]]['a']) and (data.iloc[l[i]]['b'] <= data.iloc[l[j]]['b']) and (data.iloc[l[i]]['c'] <= data.iloc[l[j]]['c']) and (data.iloc[l[i]]['d'] >= data.iloc[l[j]]['d']):
           l.pop(j)
Run Code Online (Sandbox Code Playgroud)

我在按照矩形区域的降序对数据集进行排序后实现了这种算法,因为矩形区域较大,不适合具有较小区域的矩形.在这里,我检测到它是否在另一个矩形内,从列表l中弹出矩形的索引.每次元素加载时,它都会减少迭代次数.

这需要几个小时才能解决,我需要一种有效的方法来解决它甚至数十万个样本.

请帮忙!

python algorithm performance rectangles computational-geometry

5
推荐指数
1
解决办法
674
查看次数

SVG绘制两个矩形之间的连接线

我目前在编程图编辑器javascriptSVG

我陷入与矩形之间的连接有关的问题。我发现了很多资源可以在圆之间绘制连接,但矩形却一无所获。

所以现在我得到的是,我可以通过用鼠标拖动线在两个矩形之间绘制一条连接线,但是该连接显示在它们内部,因为我是从矩形的中点计算出连接的。

如您在下面的图片中看到的,我使自己有了一些想法,但是我没有走最后一步。

我只想绘制标记为红色的线。

我的问题的示例图片:我要画红线

稍后我要拖动矩形,并且应该更新该线,但是现在我只需要计算这条线即可。

有人有好的建议吗?

javascript connection svg rectangles

5
推荐指数
1
解决办法
2409
查看次数