ポイント 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,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|