How to get point A, B , C, and D?
if AB and CD are perpendicular to p0p1.
Assume p0A, p0B, p1C, and p1D have normalized length
线的方向由 给出d = normalize(p1 - p0)
。要计算垂直向量,我们可以使用与 的叉积(0, 0, 1)
。结果是:
d_left = (-d.y, d.x)
d_right = (d.y, -d.x)
你还没有说你的坐标系是如何对齐的,所以d_left
可能会变成d_right
,反之亦然。
然后,您可以通过以下方式获得所需的积分:
A = p0 + d_left
B = p0 + d_right
C = p1 + d_left
D = p1 + d_right
假设rotate(p,d)
是一个旋转p
矢量d
角度的算子。
那么如果p0p1
与正的倾向x-axis
是x
。然后,
A = p0 + 旋转(p1-p0,pi/2)/|p1-p0|
B = p0 + 旋转(p1-p0,-pi/2)/|p1-p0|
C = p1 + 旋转(p1-p0,pi/2)/|p1-p0|
D = p1 + 旋转(p1-p0,-pi/2)/|p1-p0|