我有两个矩形,每个矩形有4个值:
左侧位置< code>X、顶部位置< code>Y、宽度< code>W和高度< code>H:
X1, Y1, H1, W1
X2, Y2, H2, W2
矩形不旋转,如下所示:
+--------------------> X axis
|
| (X,Y) (X+W, Y)
| +--------------+
| | |
| | |
| | |
| +--------------+
v (X, Y+H) (X+W,Y+H)
Y axis
判断两个矩形的交集是否为空的最佳解是什么?
如果两个矩形具有相同的尺寸,您可以:
if (abs (x1 - x2) < w && abs (y1 - y2) < h) {
// overlaps
}
最好的例子...
/**
* Check if two rectangles collide
* x_1, y_1, width_1, and height_1 define the boundaries of the first rectangle
* x_2, y_2, width_2, and height_2 define the boundaries of the second rectangle
*/
boolean rectangle_collision(float x_1, float y_1, float width_1, float height_1, float x_2, float y_2, float width_2, float height_2)
{
return !(x_1 > x_2+width_2 || x_1+width_1 < x_2 || y_1 > y_2+height_2 || y_1+height_1 < y_2);
}
还有一种方式看到这个链接...并自行编码。
if (X1+W1<X2 or X2+W2<X1 or Y1+H1<Y2 or Y2+H2<Y1):
Intersection = Empty
else:
Intersection = Not Empty
如果您有四个坐标-< code >((X,Y),(A,B))和< code>((X1,Y1),(A1,B1)),而不是两个加上宽度和高度,它看起来会像这样:
if (A<X1 or A1<X or B<Y1 or B1<Y):
Intersection = Empty
else:
Intersection = Not Empty
问题内容: 测试2个矩形是否相交的快速方法是什么? 在Internet上进行了搜索,找到了这种单行代码(WOOT!),但我不知道如何用Javascript编写它,它似乎是用C ++的古老形式编写的。 问题答案: 这就是将代码转换为JavaScript的方式。请注意,正如注释所建议的那样,您的代码和本文的代码中都有一个错字。该功能应该并且应该具体起作用。 测试用例:
我正在as3中编写一个冲突检测系统。它的目的很简单:我有一些移动的矩形和一些静态的矩形。当一个移动的矩形与另一个矩形碰撞时,我想将源(碰撞)矩形移动到碰撞区域之外,但仍然尽可能靠近(基于源的轨迹)。 在每一帧中,我更新移动矩形的位置,并检查所有矩形之间的接触。 下图代表以下内容: A:方框#1正以45度角向静态矩形(#2)移动。 b:经过几次“刻度”后,我们看到矩形#1移动到矩形#2(静态)的空间
问题内容: 我找到了解决方案,但想确保我的逻辑是最有效的。我觉得有更好的方法。我有左下角的(x,y)坐标,2个矩形的高度和宽度,我需要返回第三个矩形,即它们的交点。我不想发布代码,因为我觉得它在作弊。 我弄清楚哪个在图表上最左边和最高。 我检查一个是否与另一个完全重叠,然后反向查看另一个是否在X轴上完全重叠第一个。 我检查X轴上的局部相交。 我基本上对Y轴重复步骤2和3。 我做一些数学运算,并根据
问题内容: 我需要快速创建一个只有两个圆角的矩形(也可以使用目标C代码)。 目前,我的代码正在创建两个矩形 和 并将它们合并(有两个直角和两个圆角),但是我对代码不满意,并且我很确定应该有更好的方法。 我是iOS和图形开发的新手。 问题答案: 在 Swift 2.3中, 您可以这样做 在 Objective-C中, 您可以使用class方法 示例实现- 并将上述方法称为-
本文向大家介绍C语言实现两个矩阵相乘,包括了C语言实现两个矩阵相乘的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现两个矩阵相乘的具体代码,供大家参考,具体内容如下 程序功能:实现两个矩阵相乘的C语言程序,并将其输出 代码如下: 运行结果: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
产出: 在文件include from/usr/include/C++/4.8/IOStream:39:0、from proy3.cpp:2:/usr/include/C++/4.8/ostream:548:5:注意:模板std::basic_ostream&std::operator<<(std::basic_ostream&,const无符号char*)操作符<<(Basic_ostream&