确定对角线周围的边界矩形

时间:2016-08-06 17:55:25

标签: java math geometry

用户将在屏幕上定义一条线,当绘制时,该线将具有给定的厚度(或宽度)。

我现在需要能够确定围绕它的边界矩形的坐标。 enter image description here

我有坐标A和B,以及线条粗细(W)。

如何计算坐标A1,A2,B1和B2。

我搜索过但无法找到与此问题相对应的问题。

1 个答案:

答案 0 :(得分:1)

Dx= Xb - Xa
Dy= Yb - Ya
D= sqrt(Dx * Dx + Dy * Dy)
Dx= 0.5 * W * Dx / D
Dy= 0.5 * W * Dy / D

这会在(Dx, Dy)的方向上计算W/2长度为AB的向量。然后(-Dy, Dx)是垂直向量。

Xmin = min(Xa, Xb) - abs(Dy) 
Xmax = max(Xa, Xb) + abs(Dy)
Ymin = min(Ya, Yb) - abs(Dx)
Ymax = max(Ya, Yb) + abs(Dx)

<强>更新

我错误地回答了AABB。

对于笔画的四个角落

Xa - Dy, Ya + Dx
Xa + Dy, Ya - Dx
Xb - Dy, Yb + Dx
Xb + Dy, Yb - Dx