1

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

enter image description here

4

2 回答 2

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
于 2013-07-24T10:30:09.967 回答
0

假设rotate(p,d)是一个旋转p矢量d角度的算子。

那么如果p0p1与正的倾向x-axisx。然后,

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|

于 2013-07-24T11:11:23.373 回答