如何获得给定线段的垂直向量

时间:2013-07-24 10:18:19

标签: math graphics vector

如何获得A,B,C和D点?

如果AB和CD垂直于p0p1。

假设p0A,p0B,p1C和p1D具有标准化长度

enter image description here

2 个答案:

答案 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角度的运算符。

然后p0p1x-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 |