新しい線が最初の線に垂直になり、その中央を通過するように、「ミラーリング」する必要がある線分 (x1, y1)、(x2, y2) があります。
線分 (0,0),(2,2) は新しい線分 (0,2),(2,0) を返す必要があります
これを処理するための関数/式を手伝ってくれる人はいますか?
中点は (mx,my) = ((x1+x2)/2,(y1+y2)/2) です。
端点を中央を中心に 90 度回転するには、まずベクトルを計算します。
(dx,dy) = (x1-mx),(y1-my)
次に、90 度回転します。
dx1 = -dy
dy1 = dx
次に、新しいポイントは次のようになります。
x1 = mx+dx1
y1 = my+dy1
x2、y2 について繰り返します。
注意すれば、ステップを組み合わせることもできます。
対称性を探しているようです。それを行う良い方法は、スケーリング マトリックスを使用することです。
vx、vy、vz はスケーリングの係数です。px,py,pz は点の座標です。ポイント座標のスケール行列を乗算すると、そのポイントのスケーリングされた座標が得られます。
vx=vy=vz= 1 のスケーリング行列は恒等変換です。ミラー効果を得るには、対称を実行する軸の行列係数を反転するだけです。
例えば :
1 0 0|px
0 -1 0|py
0 0 1|pz
指定されたベクトルの y 軸に対する対称点を計算します。