当方、プラネタリウムソフトのようなものをつくろうと思っています。
その際で、下記のような座標変換方法に苦しんでおります。
緯度(θ)と経度(φ)を設定すると、ディスプレイ上の決まった位置に図形を表示させる
ということをしたいのです。球体の中心に自分がいて、ある画角で、球体表面を
平面と近似してディスプレイに表示させます。プラネタリウムになぞらえるならば、
星(ある図形)は静止状態にあって、観察者が見る角度を変える(θ,φを変える)かんじです。
図が描けないので、伝わるか心配ですが、、
全体としては球体のθ,φの座標空間で、球の中心を原点としており、
ディスプレイ上はX,Y平面で画面中央を原点としています。
例えば、(θ, φ) = (0, 0)を中心とする適当な半径の円を描きます。
で、この円が今、ディスプレイの中央にあるとします。
ここで、θのみを増加させる、つまり右を向くと、円はディスプレイ上を左へ動きます(Y不変で
X軸負の方向へ)。
これが、(θ, φ) = (π/2, 0)を中心とした円として、またディスプレイの中央に
あるとすると、経度を変化させても円は中央に静止したままとなります。
一応、画角π/6、-π≦θ<π、 -π/2≦φ<π/2、-128≦X<128、-128≦Y<128
としています。
というわけで、(θ, φ)→(X, Y)の変換はどのような考え方のもとに行ったらよいのでしょうか?
という質問です。
どこか、このようなプログラミングに関して解説しているサイトのご紹介でも結構です。
ご好意ある方、何卒よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
xy平面に平行なスクリーンと、星と原点を結んだ直線の交点を求めるのと同じですよね。
画角がπ/6で、スクリーン上の円の半径が100だとすると、
スクリーンは z = 100 / tan((π/6) / 2) になり、
交点座標は、(x = z * tan(φ), y = z * tan(θ)) になります。
画角外の星は計算も表示も不要で、交点座標とスクリーンの原点との距離が100より大きいものを表示しなければ円の形になります。
これは大学の課題ですか?
なるほど!そういう考え方なんですね。
なんとかできそうです。
大学の課題ではなく、自主的にというかんじです。
ありがとうございます。
No.1
- 回答日時:
えーと、(θ, φ)は基準方向に対する視線の方位と仰角ということですね。
これはロボティクスで言うフォワード変換に当たると思います(違ったらごめんなさい)。
Googleあたりから「回転行列」で検索してみると、
いろいろと参考になりそうなサイトが見つかると思います。
ここで字面であれこれ説明するよりも、そちらの方が分かりやすいかと。
ちょっと難しいかもしれませんが、慣れてしまえば色々な局面で応用が利きますし。
参考URL:http://www.google.com/search?hl=ja&lr=lang_ja&ie …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マインクラフト(pc版)で座標...
-
C言語 配列で座標
-
グラフの交点の求め方(Excel)
-
MATLABを使った三次元座...
-
回転する矩形同士の当たり判定...
-
DirectX png画像でx軸回転につ...
-
変数の表示
-
始点、終点の二つの座標と半径...
-
回転する四角や円で当たり判定...
-
3次元空間上の2つの座標から...
-
内積を用いた移動する線分と円...
-
Excel関数で指定範囲内に有るか...
-
初心者です。
-
直交(x,y)座標(struct orth)を...
-
Excel VBAでマウス移動&ダブル...
-
図形が重なりあっているかどうか
-
画像回転について
-
PPTのVBA スライド右下端の座...
-
エクセルである点からの距離で...
-
エクセルで作った新しいウイン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
以下のプログラムは重心を求め...
-
ダイアログ内コントロールの位...
-
3次元空間上の2つの座標から...
-
エクセルである点からの距離で...
-
エクセルで回転する座標の出し方
-
シーケンサー(PLC?)で制...
-
C言語 配列で座標
-
始点、終点の二つの座標と半径...
-
閉図形の座標の配列が右回りか...
-
一番近い点を見つけたい。
-
ワード上Shapeの位置情報を統一...
-
最小二乗平面
-
多角形の内部かどうか判定する方法
-
タッチパッドのタッチ座標取得
-
Excel VBA で自在に図形を変化...
-
座標を持った平面範囲に座標を...
-
ピクチャボックスの座標取得
-
DirectInputでの現在のマウス座...
おすすめ情報