相关疑难解决方法(0)

确定两个矩形是否相互重叠?

我正在尝试编写一个C++程序,它从用户那里获取以下输入来构造矩形(2到5之间):高度,宽度,x-pos,y-pos.所有这些矩形将平行于x轴和y轴存在,即它们的所有边都将具有0或无穷大的斜率.

我试图实现这个问题中提到的但我没有太多运气.

我目前的实现如下:

// Gets all the vertices for Rectangle 1 and stores them in an array -> arrRect1
// point 1 x: arrRect1[0], point 1 y: arrRect1[1] and so on...
// Gets all the vertices for Rectangle 2 and stores them in an array -> arrRect2

// rotated edge of point a, rect 1
int rot_x, rot_y;
rot_x = -arrRect1[3];
rot_y = arrRect1[2];
// point on rotated edge
int pnt_x, pnt_y;
pnt_x = arrRect1[2]; 
pnt_y = arrRect1[3]; …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm geometry rectangles overlap

320
推荐指数
7
解决办法
24万
查看次数

两个矩形交叉点

我有两个矩形,每个矩形有4个值:

左侧位置X,顶部位置Y,宽度W和高度H:

X1, Y1, H1, W1
X2, Y2, H2, W2
Run Code Online (Sandbox Code Playgroud)

矩形不会旋转,如下所示:

+--------------------> X axis
|
|    (X,Y)      (X+W, Y)
|    +--------------+
|    |              |
|    |              |
|    |              |
|    +--------------+
v    (X, Y+H)     (X+W,Y+H)

Y axis
Run Code Online (Sandbox Code Playgroud)

确定两个矩形的交点是否为空的最佳解决方案是什么?

algorithm math pseudocode shapes

53
推荐指数
2
解决办法
6万
查看次数

N个矩形的交点

我正在寻找一种算法来解决这个问题:

给定笛卡尔坐标上的N个矩形,找出这些矩形的交集是否为空.每个矩形可以位于任何方向(不必使其边缘平行于Ox和Oy)

你有什么建议可以解决这个问题吗?:)我可以考虑测试每个矩形对的交集.但是,它是O(N*N)并且非常慢:(

algorithm geometry computational-geometry

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

Objective-C检查旋转的UIViews的子视图是否相交?

我不知道从哪里开始.显然CGRectIntersectsRect在这种情况下不起作用,你会明白为什么.

我有一个UIView的子类,里面有一个UIImageView,放在UIView的确切中心:

旋转前的UIView

然后我旋转自定义UIView以维持内部UIImageView的框架,同时仍然能够执行CGAffineRotation.结果框架看起来像这样:

旋转后的UIView

我需要阻止用户使这些UIImageViews相交,但我不知道如何检查两个UIImageViews之间的交集,因为它们的框架不仅不适用于父UIView,而且它们在不影响其框架的情况下旋转.

我尝试的唯一结果是不成功的.

有任何想法吗?

intersection objective-c frame ios separating-axis-theorem

10
推荐指数
1
解决办法
1522
查看次数

拖放时如何找到两个ImageView之间的相交?

我有两个 ImageView

  1. 一个固定在一个位置
  2. 在第二我需要应用拖放功能.

我需要的:

第二个拖到ImageView另一个ImageView,当它们相交时,我需要调用一个方法.

编辑1:

相交b/w两个imageView DONE但是在拖拽上它没有发生.

编辑2:

我怎样才能实现这个目标Drag and drop

android imageview

6
推荐指数
3
解决办法
4213
查看次数

使用JQuery检测两个旋转的div是否发生冲突

我想检测两个旋转的div是否发生碰撞.如果他们没有轮换,我知道怎么做,但我不知道如何实际做到这一点.

我已经尝试了一些碰撞插件,例如jQuery Collision(http://sourceforge.net/projects/jquerycollision/),但是当div旋转时它们没有工作.

我使用CSS的transform属性进行了div的旋转.

html javascript css jquery rotation

6
推荐指数
1
解决办法
1487
查看次数

如何测试两个移动的2d定向边界框的碰撞?

OBB具有位置(x,y),速度(x,y)和方向(矩阵).给定定期更新,OBB必须相互冲突,返回被认为成功的移动部分.

我查看了GPWiki上的Polygon测试 - http://gpwiki.org/index.php/Polygon_Collision - 但它没有考虑移动对象或完全在OBB中的对象.

"实时碰撞检测"一书涵盖了第4章:边界体积中的3D OBB,但3维测试方法明显比2D更复杂.

collision-detection

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

分离轴定理和Python

这就是我目前正在做的事情:

创建垂直于2个矩形的4个边的4轴.由于它们是矩形,因此我不需要为每条边生成轴(法线).

然后我循环我的4轴.

因此,对于每个轴:我将矩形的每个角投影到轴上.有两个包含这些投影的列表(数组).每个矩形一个.然后我得到每个投影和轴的点积.这将返回一个标量值,可用于确定最小值和最大值.

现在,2个列表包含标量而不是向量.我对列表进行排序,以便我可以轻松选择最小值和最大值.如果框B的最小值=框A的最大值或框B的最大值<=框A的最小值,则该轴上没有碰撞且对象之间没有碰撞.

此时函数完成并且循环中断.

如果所有轴都没有满足这些条件,那么我们就会发生碰撞

我希望这是正确的做法.

python代码本身可以在这里找到http://pastebin.com/vNFP3mAb

另外:http: //www.gamedev.net/page/reference/index.html/_/reference/programming/game-programming/collision-detection/2d-rotated-rectangle-collision-r2604

我遇到的问题是上面的代码不起作用.即使没有碰撞,它也始终检测到碰撞.我输入的内容正是代码所做的.如果我遗漏任何步骤或者只是不了解SAT如何运作,请告诉我.

python math pygame physics

4
推荐指数
1
解决办法
2085
查看次数

Math/Algorithm/JS:给定每个矩形的TopLeft(x0,y0)和Bottom-Right(x1,y1),如何确定2个以上的矩形是否相交

我遇到了完成我的申请所需的数学问题,所以我正在寻求帮助.

给出2个(或更多,但基本上为2个)矩形,每个矩形有2个已知点:左上角(x1,y1)右下角(x2,y2)(我可以找到这些信息的长度,如果是需要解决问题).

TL(x1, y1)
   +-----------------+
   |                 |
   |                 |       TL(x3, y3)
   |                 |            +---------------------------+
   +-----------------+            |                           |
               BR(x2, y2)         +---------------------------+
                                                         BR(x4, y4)
Run Code Online (Sandbox Code Playgroud)

无论如何确定它们是否有交叉,在区域中,我的意思是,如果这个矩形的任何部分放在另一个的任何部分上?

我搜索并找到了一些帮助,但它没有解决问题:

有两种情况,两个矩形不会相交:

  • 一个矩形的左边缘位于另一个矩形的右边缘的右侧,意味着第一个矩形的左边缘完全位于第二个矩形的右侧,没有交叉点.

  • 一个矩形的右边缘位于另一个矩形的左边缘的左侧,意味着第一个矩形的右边缘完全位于第二个矩形的左侧,没有交叉点.

  • 一个矩形的顶部边缘位于另一个矩形的底部边缘下方,意味着第一个矩形完全位于第二个矩形的下方,没有交叉点.

  • 一个矩形的下边缘位于另一个矩形的上边缘上方,意味着第一个矩形完全位于第二个上方,没有交叉点.

所以我试图扭转条件,即如果没有发生上述4,则矩形可能会相交.但我仍然可以找到2个矩形不满足任何条件但仍然不相交的条件(如上图).

任何帮助都非常感谢,请告诉我这样做的方法或算法或代码(仅限JS和PHP).

非常感谢!

[X]

javascript php algorithm math intersection

4
推荐指数
1
解决办法
3140
查看次数

检查矩形AS3之间的碰撞

什么是检查2个矩形之间的碰撞的快速方法,然后您有矩形坐标,如:

红色矩形:A1(x1,y1),B1(x2,y2).

蓝色矩形:A2(x3,y3),B2(x4,y4).

在此输入图像描述

collision-detection actionscript-3

0
推荐指数
1
解决办法
1234
查看次数