-
计算宽度和高度之和,如果宽度和总和较大,则先处理,否则先按照宽度从小到大进行处理,将相同宽度的矩形组合成一个较大的矩形。
根据高度做同样的事情。
重复上述步骤,直到没有相同宽度和高度的矩形。
计算宽度和高度之和,如果宽度和和较大,则按照宽度从小到大排列,并找出两个矩形,使拼接后的“矩形”区域中的空位最小(更有可能是两个矩形之间的宽度差异较小)。
根据高度做同样的事情。
重复上述步骤,直到只剩下一个矩形(最终解决方案) 上面两段其实的意思是一样的:尽量用小的“面积损失”来最小化要处理的矩形数量。 只是第一段是特例,即没有“面积损失”的拼接。
不过,总的来说,这并不是最佳解决方案。
-
求第一个矩形的maxx1,minx1,maxy1,miny1,miny1找到第二个矩形的maxx2,minx2,maxy2,miny2 if ((minx1 < maxx2) &minx2 < maxx1))&
miny1
所有GIS(地理信息系统)都使用我的算法处理您的情况。 您正在寻找更简单的东西。 我也想。
-
步骤是:1:首先计算两个矩形中心点的坐标;
2:计算两个直角相邻时两个坐标之间的距离;
3:将实际距离与步骤 2 中的计算进行比较。 如果小于它,则表示 2 个矩形具有重叠区域。
-
也就是说,没有确切的解决方案。
仅知道矩形的最大值 (x,y) 和最小值 (x,y) 不足以确定矩形的大小,因此无法确定它是否重叠。
但是,可以粗略地判断。
-
假设是确保 RECT 有效,而不是无效。
rect r1, r2;
rect rcommon;
max(,
max(,
min(,
min(,
这个rcommon是排蒙两个矩形的交点,足以判断鄙视的交点部分是否为有效矩形。
-
setinterval(函数名称,1000); t: timer = new timer(1000, 5);函数名称);函数名称);
-
假设第一个矩形的坐标是x1,y1,宽度和高度是w1,h1,第二个矩形的坐标是x2,y2,宽度和高度是w2,h2:
if x2 > x1 and x2 < x1 + w1 and y2 > y1 and y2 < y1 + h1 then
msgbox "两个矩形重叠,重叠面积为:x=" & x2 & " y=" & y2 & " w=" & x1 + w1 - x2 & " h=" & y1 + h1 - y2
elseif x1 > x2 and x1 < x2 + w2 and y2 > y1 and y2 < y1 + h1 then
msgbox "两个矩形重叠,重叠面积为:x=" & x1 & " y=" & y2 & " w=" & x2 + w2 - x1 & " h=" & y1 + h1 - y2
elseif x2 > x1 and x2 < x1 + w1 and y1 > y2 and y1 < y2 + h2 then
msgbox "两个矩形重叠,重叠面积为:x=" & x2 & " y=" & y1 & " w=" & x1 + w1 - x2 & " h=" & y2 + h2 - y1
elseif x1 > x2 and x1 < x2 + w2 and y1 > y2 and y1 < y2 + h2 then
msgbox "两个矩形重叠,重叠面积为:x=" & x1 & " y=" & y1 & " w=" & x2 + w2 - x1 & " h=" & y2 + h2 - y1
elsemsgbox "两个矩形不重叠"
end if
-
例如,xb > xa,矩形 a 在矩形 b 的左侧,然后用 a 的最右边的线来比较 b 的最左边的线,如果有交点,则表示矩形已经相交(这样只有一条线相交! 也可以把中心点作为圆心,把最远的点作为半径,比较一下两者是不是相距太远,如果相距太远,甚至不需要相交,反复称呼比较实用)。
上面的边应与长边(较远的点的边缘)进行比较。
-
你要写吗** 不想写。
四点使 a b c d
首先,找到从a和b到直线cd距离很小的那个,设为l,或者判断角度,用斜率找到一个
判断L和D(1+Sin哪个大),L大不相交,开根不浪费时间(找距离),写一个tan sin也不难。
-
可以想象握住矩形的中心并旋转它,在最极端的情况下,两个矩形正好是它们对角线距离之和的一半。
-
分隔矩形 A 和 B 的每一条边。 通过查看 A 的 4 条边和 B 的 4 条边是否相交,确定两个矩形是否相交。
-
看看它是否对你有帮助。
-
假设有两个矩形 A B;
首先,计算矩形四点的坐标;
逐一判断A的四个点是否在B中,如果全部在,则包含;
如果有零件,则相交;
如果它们不存在,则判断b的四个点是否在A中,如果它们都在A中,则包含它们;
如果有零件,则相交;
否则没关系。
over。
-
确定矩形的四个顶点是否位于另一个矩形内。
首先,得到一个矩形的四个顶点坐标,然后分别确定x轴和y轴坐标是否在另一个矩阵的对角线顶点坐标内。
-
方法有很多:1 会调用 a、b 作为全局变量,放在方法外面,楼上写 2,让 a() 有一个返回值,这样就可以调用 a 方法中的变量,但不能修改 a b 和 lead 变量。
此外,建议方法名称不应是令人困惑的名称,例如 class。
-
数学问答组会为您解答,希望对您有所帮助。
矩形的长度或宽度越大放置在中间,矩形的长度或宽度越小放置在外围,生成的面积越接近所有矩形**面积之和,这可以使最终面积最小。
祝你在学业上取得进步,更上一层楼! (
-
使用场景假设有几个,40-100个的数量不一定。
每个**的大小可能不尽相同,排列中的行数和列数不限,但不能重复;
如何得到**的矩形面积的最终合成,是最小面积的排列方法;
希望能提供数学解或实现过程,谢谢!
顺便说一句,排列中涉及的矩形不需要旋转,假设矩形或**可以移动,但不能旋转。
-
这是我之前写的方法,用来判断值属于某个范围,大家可以看一下:
perl**:
sub range_judge(){
my ($num,$rengin length,$add)=@ 值,段长度,段的最小增量。
my $part=int($num/$add);四舍五入计算。
# print "part:$part";
my ($low,$hight,$iter_count);下限、上限和迭代次数,其中迭代次数是范围的长度除以增量,它会分为几个区间,然后进行迭代统计。
iter_count=$rengin_length/$add-1;
foreach(0..$iter_count){low=($part-$_add;
if($low<0){
low=0;
hight=$low+$rengin_length;
if($num >=low &# < hight){ 该值属于此范围。
-
如果范围从小到大,可以判断上一个范围的最大值是否大于下一个范围的最小值,我想加入你们的团队
说到如何看两个人是否相容,大家都知道,有人问两个人合适与否,看哪一点? 另外,还有人想问,帮忙算两个人的八个字是否合适,能不能赚钱? 你知道这是怎么回事吗? >>>More
步骤2:利用弧1的中心与弧2中的两个端点连接,选择较短的线,看这条线是否有与弧1的交点,如果有,最短距离就是交点和端点之间的距离,问题就结束了。 如果没有,请使用弧 2 的中心连接弧 1 的两个端点,类似于上述步骤。 >>>More