-1

垂直面上にある 3D ポイント セットがあります。この平面は、X 軸にも Y 軸にも平行ではありませんが、X 軸に対して角度 (たとえば θ) を成します。また、X 軸に対して何らかの (+ または -) 切片があります。

ここで、平面の方位角方向に平行な X 軸を更新したいと考えています。次に、垂直面を XY 面に寝かせます。それで、元の Z 座標を新しい Y 座標として使用できると思います。平面は XY 平面上にあるため、Z 座標はもう存在しないはずです。それで、元の XYZ と θ から新しい X 座標を取得する方法を知りたいです。

実際には、この変更を c++ で実装したいと考えています。しかし、私は数学が本当に苦手で、公式がどうあるべきかを理解するのに苦労しています.

これを行った後、新しい XY ポイント座標を使用していくつかのプロセスを実行したいと考えています。そして最後に、すべての座標を元のシステムに戻したいと思います。それが最終的に元の XYZ 軸に戻りたいということです。だから私はあなたのアシスタントも探しています。

あなたのアシスタントは大歓迎です。

注:私がしたことは次のとおりです。平面の方位角を見つけてから、点セットの左下隅の最小座標X、つまり XY 座標に対して点データをシフトしました。Y次に、新しい X、Y を (X', Y') として取得しました。

X' = X * cos (θ) + Y * sin(θ) 
Y' = Z

私のやり方が正しいかどうかわからない.. 私はこれを学ぶのが好きです.

4

1 に答える 1

3

「私のポイントセットの左下隅」についてあなたが言ったことを理解することはできませんが、「平面の方位角」を正しく理解していれば、最初の変換は次のようになります。

X' =  X * cos(θ) + Y * sin(θ)
Y' = -X * sin(θ) + Y * cos(θ)
Z' =  Z

先に進む前に、これをいじって、理解していることを確認し、必要なものであることを確認してください。

この変換後、平面内のすべての点は同じ Y' 値を持つ必要があります。

2 番目の変換 (「横たわる」) は次のようになります。

X" = X'
Y" = Y' + Z'
Z" = 0

後でこの変換を元に戻すために、Y' の値を覚えておく必要があります。

これらの座標でやりたいことをすべて実行したら、プロセスを逆にして元の座標系に戻すことができます。

X' = X"
Y' = Y'
Z' = Y" - Y'

X = X' * cos(θ) - Y' * sin(θ)
Y = X' * sin(θ) + Y' * cos(θ)
Z = Z'
于 2013-02-26T15:17:44.997 に答える