• 締切済み

座標変換について

X-Y平面上にy=x*tanθという直線があります。楕円を原点を中心として角度θ回転させて、直線と平行にさせて、直線の下の部分にある楕円の座標を求めていきたいのです。VBAでやってもうまくいかなかったので、どなたかプログラムの書き方も教えていただけると助かります。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1>すみません、私が勘違いしてましたね。 座標(x,y)を反時計方向にθ回転して得られる 座標(X,Y)は、 X=xcosθ+ysinθ Y=-xsinθ+ycosθ で得られます。 回転した座標系での楕円の方程式は 1=X^2/a^2 +Y^2/b^2 ですから、 この式に、X,Yを(x,yで表したものを)展開すると、もとの座標系での回転した楕円の方程式が得られます。 でも、一連の座標をプログラムで求めるだけなら、こうした式より、 前出の点を回転した関係を使えば、 普通のx-y座標系の座標で楕円の下半分の座標を計算し、それを、X-Yに変換する(サブルーチン呼び出しする)方が簡単だと思います。

tsukaji
質問者

お礼

BLUEPIXYさん、大変参考になりました。ありがとうございます。やってみます。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

楕円と直線の交点の1つを求めるということでしょうか? 楕円とy=0との交点(簡単に求められますね)をθ回転した座標でいいような気がします。

tsukaji
質問者

補足

BLUEPIXYさん回答ありがとうございます。私の書き方が悪かったのですが、要は、楕円体を角度θ座標変換したときの楕円の式がよくわからないのです。ここが解れば、あとはy=x*tanθより下の部分の座標はすぐ求められると思います。

すると、全ての回答が全文表示されます。

関連するQ&A