• 締切済み

座標変換について

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

  • 座標変換

    3次元(x,y,z)物体の回転でよくx軸、y軸、z軸で回転がありますが、xy平面との角度φを回転させたいときはどうすればいいでしょうか? xy平面との角度をφ回転させた後の座標(X,Y,Z)はどうなるのでしょうか? また X     x Y = T・y Z     z このような行列Tが存在するのでしょうか?

  • 楕円上の座標を求める

    原点(0, 0) 幅x 高さy の楕円上で、原点から角度シータの位置にある座標を知りたいです。どのように計算すればよいのでしょうか? あるいは、楕円をある角度で等分した場合のそれぞれの座標の算出方法も教えてください。

  • エクセルで回転する座標の出し方

    エクセルで回転する座標の出し方 (例) 座標X100、Y100の点から好きな角度を回したときのX、Yの座標の求め方 回転中心はX0、Y0 回転方向は反時計回り 例で言えば X141.421、Y0  が0度       X0、Y141.421  が90度       X-141.421、Y0 が180度       X0、Y-141.421 が270度 エクセルでの問題点は 1.角度計算がラジアンになる デグリも関数はあるけど書式がわからない  無理やり(PI()/180)などを使ってるがアークタンジェントでは書式がわからない 2.正と負の計算式・答えが負になるときの処理ができない  回転角度が270度とか 今電卓で打っているのは 100/100=ATAN ----------------------最初の角度 100*100+100*100の答えのルート--------回転中心からの直線距離 最初の角度+動かしたい角度------------求めたい座標の角度 SIN求めたい座標の角度*直線距離-------Y座標 答え COS求めたい座標の角度*直線距離-------X座標 答え 最初のX、Y座標と 動かしたい角度を入れると答えが出るような 物が作りたいです よろしくお願いします エクセル2000 WINXP

  • 角度から楕円の座標を計算したい

    原点を中心として、長径20・短径10の楕円について ある角度の時のx座標y座標の値を得る式を考えているのですが、どうしても思いつきません。 x^2/a^2+y^2/b^2=1が楕円の方程式で間違いないと思います。 現在、 x^2/20^2+y^2/10^2=1 の式で表す楕円のxとyについて、角度θから計算したいのです。 元々数学が得意でないため高校時代の教科書を探して勉強し直してみたのですが、どうしても思いつきません。 θを与えると座標が出てくる式を教えてください。

  • 座標変換について

    座標系XYZの空間に点A(X1,Y1,Z1)、点B(X2,Y2,Z2)、点C(X3,Y3,Z3)があります。 この3点を通る円の中心をP(X0,Y0,Z0)とし、 円の存在する平面をx'y'平面とします。 さらに原点を点P、x'軸はPAを通る直線とします。 座標系x'y'z'から円周上の点D(X',Y',Z')を求め 座標系XYZに変換した(X4,Y4,Z4)を求めたいのですが、どうすればよいのでしょうか? 以下のようにすれば求まると思うのですが角度α、β、γの求め方が分かりません。 X'' = X' * cosα - Y' * sinα Y'' = X' * sinα + Y' * cosα Z'' = Z' X''' = X'' Y''' = Y'' * cosβ - Z'' * sinβ Z''' = Y'' * sinβ + Z'' * cosβ X4 = X''' * cosγ + Z''' * sinγ Y4 = Y''' Z4 = Z''' * cosγ - X''' * sinγ よろしくお願いします。

  • 数学の問題がわかりません。

    3次元空間における点Pはx,y,zの直交座標系で成分(1,1,1)を持つとしたとき、原点と点Pを通る直線をLとする。 (i)点Pを通り、直線Lと垂直な平面をQとするときのQとxy平面の交線の式を求めよ (ii)点Pを通り、直線Lと30度の角度をなす直線を直線L周りに回転させる。 このとき、直線とxy平面の軌跡は楕円を描く。この楕円の中心を求めよ。 という問題なのですが、どう解けばいいかがわかりません。 どのように導入をするのか、式をつかえばいいかがわからないので 教えて頂きたいです。 よろしくお願いします。

  • 極座標変換

    教えて下さい。 ある円形の外周を測定したとき(円形の物体を回して測定する。測定器は固定されている。)、横軸を位相、縦軸を測定値とすると、θ(0~n),r(0~n)のデータを極座標変換すると、x(0~n),y(0~n)のデータに置き換わると思います。これを横軸x縦軸yでグラフ化すると円になると思います。ここまでは合ってます? 円形の物体が真円であると仮定すると、横軸位相に対して縦軸測定値は、傾き0の直線になると思います。 しかし、円形の物体を回したときに回転中心と円形の物体の中心がずれていると、偏心して回転するため、直線にならなくて、曲線になると思います。(正弦波に近い曲線)この得られた曲線から極座標変換して、xy平面上に円を描きたいのですがどのようにすればいいのでしょうか?教えて下さい。

  • 楕円の円周上の座標を求める計算式を教えて下さい。

    原点(0,0),長軸a,短軸bとする楕円上で、原点から角度シータの位置にある楕円の円周上の座標(x,y)を求める計算式を教えて下さい。 単純に、acosθ,bsinθで求めると、なんだか座標値がおかしくなるのですが。

  • プラネタリウム的な座標変換を行うには?

    当方、プラネタリウムソフトのようなものをつくろうと思っています。 その際で、下記のような座標変換方法に苦しんでおります。 緯度(θ)と経度(φ)を設定すると、ディスプレイ上の決まった位置に図形を表示させる ということをしたいのです。球体の中心に自分がいて、ある画角で、球体表面を 平面と近似してディスプレイに表示させます。プラネタリウムになぞらえるならば、 星(ある図形)は静止状態にあって、観察者が見る角度を変える(θ,φを変える)かんじです。 図が描けないので、伝わるか心配ですが、、 全体としては球体のθ,φの座標空間で、球の中心を原点としており、 ディスプレイ上はX,Y平面で画面中央を原点としています。 例えば、(θ, φ) = (0, 0)を中心とする適当な半径の円を描きます。 で、この円が今、ディスプレイの中央にあるとします。 ここで、θのみを増加させる、つまり右を向くと、円はディスプレイ上を左へ動きます(Y不変で X軸負の方向へ)。 これが、(θ, φ) = (π/2, 0)を中心とした円として、またディスプレイの中央に あるとすると、経度を変化させても円は中央に静止したままとなります。 一応、画角π/6、-π≦θ<π、 -π/2≦φ<π/2、-128≦X<128、-128≦Y<128 としています。 というわけで、(θ, φ)→(X, Y)の変換はどのような考え方のもとに行ったらよいのでしょうか? という質問です。 どこか、このようなプログラミングに関して解説しているサイトのご紹介でも結構です。 ご好意ある方、何卒よろしくお願いいたします。

  • 座標変換についての問題です

    問題:平行移動によって座標の原点を(1,2)に移すとき、次の方程式は新しい座標でどのように表されるか。 y=5x-3 解き方わかりませんので、よろしくおねがいします。