質問: √(ax^2 + ay^2 + az^2) 点b(bx, by, bz)に対応する点 → b'(βx, βy, 0) このときのβx, βyの決め方を教えていただけないでしょうか? (おそらくβyの符号で2通りあると思います) ----- 具体的な目的は、以下のようなものです。 xyz座標の関数として値が決まるf(x, y, z)があります。 これを点o, a, bを通る平面上でメッシュを切って計算しました。 この結果をgnuplotのpm3d mapでグラフ化したいのですが、gnuplotの入力は以下のようなフォーマットです。 x1 y1 f(x1,y1,z1) x2 y2 f(x2,y2,z2) x3 y3 f(x3,y3,z3) x4 y4 f(x4,y4,z4) ... そこでxyz空間の平面oab上の点pn(xn,yn,zn)を対応するxy平面上の点pn'(xn,yn)に変換したいです。 よろしくお願いします。
回答: 回転ですね。 まず、z軸を回して a の y成分を 0 にする。 次に、y軸を回して a の z成分を 0 にする。 最後にx軸を回して bの z成分を 0 にする。 例えば、z軸を回して a の y成分を 0 にするには (ax, ay, 0)のx軸との角度を求め、x軸との角度が0になるように 回転すればよい。 こんな感じです。各軸の回転行列を紹介しているサイトは 山ほどあるので、参照してみてください。