• ベストアンサー

座標系の偏倍なんて嫌いだあ(T-T)

guiterの回答

  • ベストアンサー
  • guiter
  • ベストアンサー率51% (86/168)
回答No.4

少し不親切でした。 n は座標変換の回数、1.2^n は siegmund さんの補足にあるようにn乗のことです。 以下、No.2の回答での行列の導き方です。 まず、初期状態として座標 O(0,0)、A(200,0)、B(200,200)、C(0,200) を頂点とする正方形OABCを考えます。 ここで、n回座標変換を行なった後OAベクトルは 長さが 1.2 の n乗倍に、また 30*n[度]= nπ/6[rad]回転します。 すなわち、OA'ベクトル  ( 200*1.2^n*cos(nπ/6),200*1.2^n*sin(nπ/6) ) に写されます。 したがって、n回の座標変換を行なう行列をAnとして  ┌ 200*1.2^n*cos(nπ/6) ┐    ┌200┐  │            │ = An│  │     └ 200*1.2^n*sin(nπ/6) ┘    └ 0 ┘ という式が成り立ちます。 同様にしてOCベクトルがOC'ベクトル  ( -200*1.5^n*sin(nπ/6),200*1.5^n*cos(nπ/6) ) に写されることから  ┌ -200*1.5^n*sin(nπ/6)┐    ┌ 0 ┐  │            │= An│  │     └ 200*1.5^n*cos(nπ/6)┘    └200┘ という式が成り立ちます。 これらの式から行列AnがNo.2のように決まります。 また、変換後のOA'とOC'の内積をとると0になることから 変換後の2つのベクトルは垂直になっていることがわかりますね。 さらに、変換前  OB = OA + OC ですから変換後のOB'ベクトルは  OB'= OA'+ OC' というベクトルに写されます。 よって、四角形OA'B'C'は長方形になっています。 平行移動については行列で操作できないので最後にn回分まとめて動かすしかなさそうですね。 ところで、同じ辺を1.2倍し続けるのでいいのでしょうか?

kodemariman
質問者

補足

いえ、目的としては同じ辺を1.2倍しつづけるのではありません。 やりたいのは、ある座標系に描いた図形を、回転と拡大縮小の座標変換を行う事で 任意の大きさに拡大縮小して、かつ任意の角度に回転させることです。 また、そうして変換した座標系の中でさらに拡大や縮小、回転を行いたいのです。 で、どーもそういう作業(ポストスクリプトでプログラムを組んでいるんですが)をしていると、途中で図形がゆがんできてしまうので 困ってしまったんですよ。(^^; (2回目の回転と拡大縮小で、なんかゆがんでしまう) ところで、教えていただいたこの変換行列で試したところ、やぱり長方形 じゃなくて平行四辺形になってしまいました。理屈は納得できるのですが・・・ 謎です。Ghostのバグなのかしら。(でもこれも長生きのソフトだからそれはないかも) ほかに実験できそうなツール探して試してみようかな。

関連するQ&A

  • 座標系 三角関数 回転行列

    座標系 三角関数 回転行列 単位円において、θの正方向は反時計回りですがこれって右手系の座標系を採用しているからですか? x,y,zの3軸を考えると以下になってしまって混乱しています。 1.(Z軸が奥向きの場合) Y ↑ | |  --→X この座標系では、時計回りがθの正の方向ですよね? 2.(Z軸が手前向ききの場合)    Y    ↑    |    | X←-- この座標系では、反時計回りがθの正の方向ですよね? 参考書などに書かれている単位円はθの正方向は反時計回りだと認識しているのですが、その場合、2の座標系なんでしょうか? 私は、1の座標系で反時計回りを正にしているように思いました・・・ 回転行列を作ろうと思って考えた結果、自分でも混乱しています。。。 申し訳ないのですが、ご回答よろしくお願い致します。

  • エクセルを用いた3次元座標変換

    3次元座標空間において、座標軸を回転・平行移動させて3つの座標点のz座標をすべて0にする方法を教えていただけないでしょうか。 例:(x1,y1,z1), (x2,y2,z2), (x3,y3,z3) →(回転・平行移動)→ (x1',y1',0), (x2', y2', 0), (x3', y3', 0)  また、この3つの座標点以外の座標点についても、 これと同じ回転・平行移動を一括して行う方法があれば教えてください。 よろしくお願いします。

  • 座標の回転

    x,y座標で表されるある点を反時計回りにα°回転したX、Y座標に変換しました。 かつてこのサイトで教えていただいたとおり (x、y)=(rcosθ,rsinθ)とおき,αだけ回転した座標なので (X,Y)=(rcos(θ+α),rsin(θ+α)) 加法定理を使って X=xcosα-ysinα Y=xsinα+ycosα と計算しました。 ところが,ある本に同様の計算がついていたのですが, X=xcosα+ysinα Y=-xsinα+ycosα となっており正負が異なります。(私と同じように反時計回りの回転)  私の計算が違っているのでしょうか。それとも何かの仮定が異なっているのでしょうか。 (ちなみにある本は作図により上記の結果を求めています。)  分かりにくいかもしれませんが,適切な指摘をお願いいたします。

  • ワールド座標系で回転

    こんにちは。3Dプログラムの仕事の指示を受けました。 3Dプログラムは無知でして見よう見まねで行っています。 現在回転行列について困っています。 正方形のモデルをY軸に45度、X軸に45度回転させようとしています。 現在はモデルのローカル座標系で回転するのでY軸の回転でローカル座標系が変わった後にX軸で回転します。これを相対変換と言えばよろしいのでしょうか。 WorldMatrix = RotationX(AngleX) ; WorldMatrix *= RotationY(AngleY) ; WorldMatrix *= RotationZ(AngleZ) ; 上記の回転ではなく、ワールド座標系で回転させたいのですが、このときの回転行列はどのようにして求めればよろしいのでしょうか? Y軸に45度回転させても座標系はそのまま。そしてX軸で45度させるためにはどのようにすればよろしいのでしょうか? わかりづらいですが添付した図のようになればと思っています。

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

    エクセルで回転する座標の出し方 (例) 座標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

  • 座標変換

    座標変換についてわからないことがあります. 同じ座標系内で回転移動や,平行移動などはわかるのですが,別の座標系へ変換するにはどのようにすればよいのでしょうか? ある座標系oでz(r,θ)と表される極座標は,別の座標系o'ではどのように表されるのでしょうか? 変換方法を教えてください. よろしくお願いします.

  • 2つの座標系

    時刻t=0で一致する2つの座標系xy-系(S系)とx'y'-系(S'系)がある。 S'系はS系に対して、原点を中心に一定の角速度ωで回転している。 時刻tにおけるS系から見た質点Pの位置座標を(x(t),y(t))とし、S'系から見たそれを(x'(t),y'(t))とする。 S系から見ると、質点Pはy軸に平行な直線上を等速度Vで正方向に運動している。S'系から見た質点Pの運動を求めよ。 全くわかりません。 詳しい解説お願いします。

  • 傾いた座標の再計算について

    1600×1200の長方形の画像があり、X, Yの座標が存在します。 画像を20°の角度で右下がりに回転し、さらにその画像を長方形にぴったり収まるようにした場合にX,Yの座標を再計算したいのですが、方法がわかりません。 何か公式などに当てはめて計算することはできるでしょうか? 仮にX,Yを(300,400)にした場合の再計算方法をおしえて教えてください。

  • 2点の座標がある座標を中心に回転した場合の座標は?

    ある2点の座標 P1(x1,y1), Q1(x2,y2) が ある座標(X,Y)を中心に回転し、点 P2(x3,y3) Q2(x4,y4) に移動した場合、回転の中心となった座標(X,Y)を求めるにはどうしたら良いでしょうか。

  • 楕円に内接する長方形の問題で・・・

    x^2/a^2 + y^2/b^2 = 1 の楕円に内接する長方形で、 面積が最大のものの辺の長さを求めよ。 という問題で、 (1)単位円に内接する長方形で面積が最大のものを求める。→正方形 (2)この楕円は単位円をx軸方向、y軸方向にそれぞれa倍、b倍に拡大したものだから この楕円に内接する面積が最大の長方形は(2)で求めた正方形を x軸方向、y軸方向にそれぞれa倍、b倍に拡大したものである・・・ という解き方は、解答として×でしょうか?