如何获得点A,B,C,和d?
如果AB和CD都垂直于P0P1。
假设P0A,P0B,P1C和P1D有标准化的长度
如何获得点A,B,C,和d?
如果AB和CD都垂直于P0P1。
假设P0A,P0B,P1C和P1D有标准化的长度
该线的方向由下式给出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,P1 / 2)/ | P1-P0 |
B = P0 +旋转(P1-P0,-pi / 2)/ | P1-P0 |
C = P1 +旋转(P1-P0,P1 / 2)/ | P1-P0 |
d = P1 +旋转(P1-P0,-pi / 2)/ | P1-P0 |