• ベストアンサー

座標の変換

座標の変換 に関して質問があります。 質問1 ある矩形をr度回転した時の矩形の座標を簡単に求める関数はありますか? 質問2 支点(x0, y0)から座標(x1, y1)をr度回転した時の座標(x2, y2)を求める場合、 何クラスの何メソッドを使うのが一番簡潔ですか? 詳しい方がいましたら教えて下さい。宜しくお願い致します。

  • ken2r
  • お礼率88% (82/93)
  • Java
  • 回答数2
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

簡単かどうかは知らないが、 java.awt.geom.AffineTransformあたりを使うかな。 http://download-llnw.oracle.com/javase/7/docs/api/java/awt/geom/AffineTransform.html (1,1),(3,1),(3,3),(1,3)の正方形を(2,2)を中心に回してみた。 http://ideone.com/CDuen #なんか(0,0)がつくっぽい。 #どの順で表示されているかは面倒なので考えてない。 #最初のやつだけならTransformメソッドでもいいかと。 http://download-llnw.oracle.com/javase/7/docs/api/java/awt/geom/AffineTransform.html#transform%28java.awt.geom.Point2D,%20java.awt.geom.Point2D%29

ken2r
質問者

お礼

ご回答有難うございました。

その他の回答 (1)

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.1

一番「簡潔」なのはやはり Math クラスの sin メソッドと Math クラスの cos メソッドではないでしょうか

ken2r
質問者

お礼

ご回答有難うございました。

関連するQ&A

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

    3次元座標空間において、座標軸を回転移動させて三つの基準座標点のz座標をすべて0にする方法を教えていただけないでしょうか。 例:(x1,y1,z1), (x2,y2,z2), (x3,y3,z3) →(回転移動)→ (x1',y1',0), (x2', y2', 0), (x3', y3', 0)  よろしくお願いします。

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

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

  • 座標変換について (テンソル解析)

    高度な数学の質問になります。宜しくお願いします。 テンソル解析をしていて出てきた疑問です。 yi=f(x1,x2,x3) によって、x1,x2,x3がy1,y2,y3による新しい変数へ変換される、座標変換を考えます。 逆変換を x1=g(y1,y2,y3) とします。 このような変換が、変数(x1,x2,x3)のある領域Rにおいて可逆であり、1対1対応をもつための条件が (1)Rにおいて関数fは一価、連続であり、連続な偏導関数をもつこと (2)関数行列式(ヤコビアン)Jが領域Rのいかなる点においても0にならないこと となる理由を教えて欲しいのですが。 微積の教科書を洗ってみましたが、基礎教養の微積でしたので、書いてありませんでした。 どうか、数学に詳しい方、詳しく教えてください。宜しくお願いします。 なお、このことが詳しく書いてあるリンクを教えてくださっても結構でございます。宜しくお願いします。

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

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

  • 3次元座標の求め方

    3次元座標の求め方 原点 0,0,0 を中心にした球体面上の正面から見た頂点座標で、 回転による移動後の座標の求め方を知りたいです。 例えば、球面の半径が 100 で、頂点の座標 x1, y1, z1 が 100, 0, 0 にある場合、 Y軸に対してπ/2 rad (90度)回転した座標 x2, y2, z2 は 0, 0, -100 になると思うのですが、 この新たな3つの座標 x2, y2, z2 を導くにはどのように計算しているのでしょうか。 平面上の円運動のように cos sin の組み合わせ等で導き出せるのでしょうか。 x1, y1, z1 から、 Y軸に対してr回転 した場合の各 x2, y2, z3 の出し方 X軸に対してθ回転 した場合の各 x3, y3, z3の出し方 Z軸に対してΘ回転 した場合の各 x4, y4, z4 の出し方 のような形で、導くための計算を順にお教えいただけると嬉しいです。 最終的には、元座標 x, y, z をY軸にr、更にそこからX軸にθ、更にそこからZ軸にΘで X, Y, Z になる、といった形で求められるようになりたいと思っています。 座標は原点 0, 0, 0を中心に 上に行くほどYが「減少」 右に行くほどXが「増加」 奥に行くほどZが「増加」 Y減少 ↑ _ Z増加 │/` ├─→ X増加 という形になっています 自分のわかる限りで質問内容を細かく記述したつもりですが、 数学の知識に乏しいので、記号などの使い方や説明の不備があるかもしれません。 何か不足があった場合には補足させて頂きます。 以上宜しくお願い致します。

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

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

  • 円が移動した時の座標

     図なしで説明するのが難しいのですが、半径rの円、つまりX座標軸上の+X切片が(r、0)、Y座標軸上の-Y切片(0、-r)の円が右上に移動して、+X切片が(r+x1,0)、-Y切片(0、-r+y1)になった時に、円中心の座標は(0,0)からどこに移動するのでしょうか?。X軸、Y軸上の移動量から円中心の移動量を知りたいのですが、単純にベクトル(x1、y1)の移動とは円弧の分だけ違うと思うのですがどのように計算すればよいのかわかりません。  またX軸、Y軸上の90度の位置関係での移動量ではなく、X軸上の移動量x1とX軸から角度-α(時計回り方向にα度で90度未満)のα軸上の移動量α1、つまり+X切片が(r+x1,0)、+α切片が(0、-r+α1)へ移動とわかっている場合の円中心の座標は(0,0)からどこに移動するのでしょうか?。  三角関数使って簡単に算出できるのか?、それとも計算できないのか?。 よろしくお願いします。

  • 座標変換について

    直交座標系(x,y)において、x軸とy軸ともにθだけ回転して、新しい直交座標系(x’,y’)になるとするときに、 x'=x*cosθ+y*sinθ y'=-x*sinθ+y*cosθ になる。 というのは、どの参考書を見ても書いてあるのですが、何故そうなるのか、証明的なものがどこにものっていません。 誰か分かる方いらっしゃいますか?

  • 二点の座標から距離や角度を求めたいのですが、Matlab

    こんにちは、Matlabの初心者ですがよろしくお願いします。 ある座標、たとえば、A(x1, y1) B(x2, y2)があったとして、 この二点間の距離は、 sqrt((x2-x1)^2 + (y2-y1)^2) だと思いますが、もっと簡潔に求めることができる関数とかが導入されていたりしないかと思いました。AやBを定義しておいて、AとBだけを使うことができないかと思いました。 また、この二点を通る直線とX軸とがなす角度は、 atan(sqrt((y2-y1)^2)/sqrt((y2-y1)^2)) で求められるかと思いますが、これも同様にもっと簡潔な方法がないかと思いました。 いかがでしょうか。よろしくお願いします。

  • excelの乱数を用いて円が重ならない座標を選び出

    excelの乱数を用いて円が重ならない座標を選び出す方法 2次元平面(0<x<100,0<y<100)に同じ半径rの円を重ならないように配置したいのですが、困ってます。 考えとしては 1.まず1個の円の中心座標を決める(R1(x1,y1)とする) 2.2個目の円を、1個目と重ならないよう配置できる中心座標R2(x2,y2)を乱数で決める。 ((x1-x2)^2+(y1-y2)^2>4r^2) 3.3個目の円を、1個目と2個目と重ならないように配置できる中心座標R3(x3,y3)を決める。 ((x1-x3)^2+(y1-y3)^2>4r^2かつ(x2-x3)^2+(y2-y3)^2>4r^2) これを繰り返す。 このような座標をexcelの乱数機能を用いて出すことは可能でしょうか? 皆様のお力をお貸しください。

専門家に質問してみよう