如何获得A,B,C和D点?
如果AB和CD垂直于p0p1。
假设p0A,p0B,p1C和p1D具有标准化长度
答案 0 :(得分:3)
该行的方向由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
答案 1 :(得分:0)
假设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 |