假设我有两个相互重叠的矩形......
alt text http://filebox.me/files/u8atnxd34_overlap1.png
我希望他们这样结束......
alt text http://filebox.me/files/jt8ef1t44_overlap2.png
我如何计算我需要添加的位置,以便矩形相互移出?
注意:我确实发现了this问题,但它没有告诉我如何实际移动矩形。
每个人都假设我想向下移动矩形,但实际上我希望矩形在最合乎逻辑的方向上移动。因此,如果矩形完全位于第一个矩形的右侧并向左移动1个像素,那么它将向下移动,而不是向下移动。它将向右移动。
答案 0 :(得分:2)
__________
| ____|____
| A | | |
|___|____| |
| B |
|_________|
if [
(TopLeftOfA.Y + A.Height - TopLeftOfB.Y)
<
(TopLeftOfA.X + A.Width - TopLeftOfB.X)
]
TopLeftOfB.Y = TopLeftOfA.Y + A.Height
else
TopLeftOfB.X = TopLeftOfA.X + A.Width
答案 1 :(得分:0)
从第二个矩形向任意方向移动第一个矩形。
答案 2 :(得分:0)
在您显示的确切配置中:
其中a =是前景矩形,b =背景三角形。
a.Top = b.Bottom; // Add +1 to have it just past the bottom.
答案 3 :(得分:0)
rectangle2.top = rectangle1.bottom+1
(javascript)
答案 4 :(得分:0)
更容易:
将第一个矩形底部的Y括号设置为第二个矩形顶部的ycoördinates