• ベストアンサー

球面上のある点から他の点への方向の計算

球面上で、緯度経度で表されるある点から他の点への方向を計算する方法を教えてください。

  • mide
  • お礼率95% (422/443)

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

  • ベストアンサー
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.8

No.5でのお礼に対するアドバイスです。 一般に、3点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3) を通る平面は、これらが一直線上になければ | x1 y1 z1 1 | | x2 y2 z2 1 | = 0 | x3 y3 z3 1 | | x  y  z  1 | と書けます。 問題の件ではゼロになる要素があるので、その分 計算は楽になると思います。頑張って下さい。

mide
質問者

お礼

実は本で、球面三角形の公式のひとつ: sinα/2 = √((sin(s-b)sin(s-c))/(sin b・sin c)) s = (a+b+c)/2 を見つけて、これを使うようにしてしまいました。 でもこの機会に平面の計算も勉強したいと思います。ご回答ありがとうございました。

その他の回答 (8)

  • kony0
  • ベストアンサー率36% (175/474)
回答No.9

#6のイメージでの解法について、外積2回でOKですね。 つまり中心O、基準点A、目標地点Bに対して αの法線ベクトル:OA×OB(外積) βの法線ベクトル:OA より求める接線ベクトル:(OA×OB)×OAで求められます。 たぶん向きもこれであってると思います。(理論的に説明できませんが^^;) 数値例を1つ。 半径sqrt(14)の球で、A(1,2,3), B(3,1,2)とすると、OA×OB=(1,7,-5), (OA×OB)×OA=(31,-8,-5)…答 検証 平面α(大円を含む平面OAB)の方程式はx+7y-5z=0 PをAP=k(31,-8,-5)とおくと、Pの座標は(1+31k,2-8k,3-5k)となり、これらは平面α上にある。 よって、Pはα上で直線を描き、OA・AP=0よりOA垂直APが言えるので、大円に対する点Aにおける接線であると言える。(終) 追伸 外積については、たとえば下記URLを参照してください。

参考URL:
http://www.dt.takuma-ct.ac.jp/~sawada/math/danwa5html/node23.html
mide
質問者

お礼

実は本で、球面三角形の公式のひとつ: sinα/2 = √((sin(s-b)sin(s-c))/(sin b・sin c)) s = (a+b+c)/2 を見つけて、これを使うようにしてしまいました。 でもこの際なので、教えていただいた通り外積も勉強して、以後このような問題は自分で解けるよう心がけたいと思います。詳しいご回答ありがとうございました。

  • beta16
  • ベストアンサー率30% (4/13)
回答No.7

内積とったらどうですか? 意味違いますか?

mide
質問者

お礼

何と何の内積でしょうか? とりあえず別の方法で解決はしたのですが。

  • kony0
  • ベストアンサー率36% (175/474)
回答No.6

こんな考え方ではできないでしょうか? 方針は、#3に対するお礼でmideさんが書かれていることそのもの(2点間のベクトルを接平面に射影)です。 イメージでいうと、 1. まず大円を考えるために、基準点、目標地点、中心(=原点)を通る平面αを考える。 2. 基準点における接平面βを考える。 すると、αとβの交線が、求めたい接線ベクトルになりませんでしょうか? αの方程式は、#4でranxさんが言われているAx+by+Cz=0 βの方程式は、基準点の座標を(a,b,c)とすれば、a(x-a)+b(y-b)+c(z-c)=0です。(接平面の法線ベクトルはまさに[a,b,c]) 交線は、上のx,y,zの3文字2式の不定方程式を解けばOK。 計算の仕方は、Ax+By+Cz=0については、原点を通っていることは式に織り込み済み(定数項=0)なので、残りの2点を代入して、A,B,Cに関する式を2つ作り、B,CをAで表せばOK。 また交線上の点は、求める方向ベクトルを[p,q,r]とすれば、パラメータkを使って(x,y,z)=(pk+a,qk+b,rk+c)とおける(点(a,b,c)は交線上!)ので、それを2平面の式に代入して、あとごりごり計算したらp:q:rが出てくると思われます。 が、なにぶん計算してないので。。。夜暇だったらこの方針で1回解いてみます。 ※2平面の交線の方向ベクトルという、高校生の練習問題レベルに落ちるところがミソなんですが。。。そもそも考え方が間違っていたらすみません。^^;

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.5

どうも、再びranxです。 東か西かの判定、簡単でした。 No.4の中で、基準点を通り赤道に垂直な平面の方程式を Px+Qy=0と書きましたけれど、これ、経度をαとすると xsinα-ycosα=0 なんですね。 で、この式の左辺に目的点の三次元空間内での座標を代入し、 プラスなら西、マイナスなら東です。 (ゼロならば真北=真南です。)

mide
質問者

お礼

2回のご回答ありがとうございました。 方針は分かりました。ただ原点、基準点、目的地点から A, B, Cをどう計算するかが分からないのですが…。3点の座標から方程式を解くなどしなくてはならないのでしょうか?

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.4

私も球面三角法は知らないので、通常のユークリッド幾何と考えてやり方だけ。 基準点と目的の点の三次元空間内での座標はalpha16さんのやり方で求められますね。 (私なら東経をプラスにとりますけど。) その二点と球の中心(つまり原点)の三点を通る平面を求めます。 次に、原点と基準点を通り、赤道面に垂直な平面を求めます。 この二平面をAx+By+Cz=0、Px+Qy=0とすると、 cosθ=(AB+BQ)/(sqrt(A^2+B^2+C^2)*sqrt(P^2+Q^2)) とした時のθが、基準点から真北をゼロとした時の角度になります。 あとは東か西かを決めれば良いわけですが、う~ん、どうしよう。 ちょっと考えてみます。

  • alpha16
  • ベストアンサー率40% (8/20)
回答No.3

わたくしは、数学や力学の専門家ではないので、正しいかどうかはわかりませんが、基本的な考え方は、sakisakimanさんの説明でよいと思います。 もし経度緯度であらわされた点から点への方向を計算したければ、 地球中心を原点として 原点から経度0度緯度0度の方向をx軸、 原点から緯度0度西経90度の方向をy軸、 原点から北極点の方向をz軸とし、 ある地点の緯度をα度(北緯ならプラス南緯ならマイナスで[-90,90])      経度をβ度(西経をプラス東経をマイナスで[-180,180]) とすれば、 その地点の座標は、(rcosαcosβ,rcosαsinβ,rsinα)となります。                         (rは地球の半径) そこで緯度γ度、経度δ度の地点への方向は、 (rcosαcosβ-rcosγcosδ,rcosαsinβ-rcosγsinδ,rsinα-rsinγ) 単に方向でしたらrは必要ありません。 例えば北緯60度東経135度の地点から緯度0度経度0度の地点の方向ならば α=60度 β=-135度 γ=0度 δ=0度となるので (cos60cos(-135)-cos0cos0 ,cos60sin(-135)-cos0sin0 ,sin60-sin0) =-1/{2*(2^(1/2))}[ 1+2*(2^(1/2)) ,1 ,-6^(1/2) ] =[ 1+2*(2^(1/2)) ,1 ,-6^(1/2) ] です。 いかがでしょうか?

mide
質問者

お礼

ご回答ありがとうございました。三次元的には、そうやって計算できると思います。ただ、知りたいのは基準点と目的地点とを結ぶ球面上の大円の、基準点からみた角度なのです。なので基準となる地点から球の中心に向かう直線に垂直な平面に、その三次元的ベクトルを投影すればいいのかなと思うのですが、それが計算できません…。

  • pasta500g
  • ベストアンサー率46% (30/65)
回答No.2

球面三角法とか、球面三角形の公式とか呼ばれている方法で計算します。 もし解法を知りたいのではなく計算結果が目的なら、 算出プログラムも色々公開されていますが。 このあたりのキーワードで探して見て下さい。

参考URL:
http://www.nifty.ne.jp/forum/fyamap/kyorihoi.htm
mide
質問者

お礼

URLありがとうございました。とても長いのでゆっくり読んでみます。その中の計算式を2つほど試しましたが、その2つで異なる値が出たり、同一緯度で使えなかったりするので(私の計算のしかたに問題があるかも)もう少し調べてみます。算出プログラムも便利そうですが、できれば自分の計算に組み込みたいのです。

回答No.1

ベクトルの問題ですか?? ある点をA,もう一方の点をBと置くと、ベクトルAB=ベクトルOBーベクトルOAですよね? Oは中心。 例えば、ベクトルOAが(13,30)、ベクトルOBが(23,45)だとすると、ベクトルAB=(23-13、45-30)=(10、15) ※(緯度、経度)という意味のつもり。 方向を計算するのだから、答えはベクトルなのでこれでいいのではないでしょうか?

mide
質問者

お礼

平面座標ならそれでいいと思うのですが、球面ではなりたたないのです。三次元ベクトルを操作すればなんとかなりそうなのですが、自力では解けそうもありません。 ありがとうございました。

関連するQ&A

  • 3点の緯度経度よりそれぞれへの角度を求める(球面三角法にて)

    機知の3地点の緯度経度より、 三角形を作ったときの それぞれの角度の求め方を教えてください。 出来ればエクセルで処理をしたいのですが・・・  (球面三角法にて完全球面とした時で   地球半径6,371,000)

  • 緯度・経度の計算方法

    地図中に緯度・経度の記入をしたいのですが、計算方法を教えて下さい。 緯度が34°5'と34°33333333'の位置とその2点間の距離が18497550mmであり、 経度が133°と133°25'の位置とその2点間の距離が22872700mmであることがわかっています。 このことから、緯度が34°4'の位置と経度が133°30'の位置を求める式を教えて下さい。

  • 2点の距離について

    2点 A(経度x_1,緯度y_1) B(経度x_2,緯度y_2)の距離の 計算式を教えてください

  • 2点の緯度経度から2点の交点の緯度経度を求めるには?

    ある2地点の緯度経度及び方位角がわかっている場合、ある地点で2点の延長線が交わった地点の緯度経度を求めるにはどうすればよいのですか。 また、3地点の緯度経度、方位角がわかっていて、3地点の延長線上が交わらず(各2点は交わる)各2地点の交点で三角形ができたとき、この重点の緯度経度を求めるにはどうすればよいのですか。 地図上で線を引いて求めると思いますがもっと正確に求める計算式を教えてください。

  • 東京ロンドン間の距離(半径・緯度・経度基地のとき球面上2点間の距離)

    先日はじめてロンドンへいって行きました。滅多にない海外旅行なので、距離を知りたくなりました。簡単に計算できるだろうと球の絵を描き、2都市を含む平面で二都市を挟む角度を求めようとしました。中学卒業後50年以上数学をほとんど使っていないせいかよくわからなくなりました。 インターネットのあるホームページでロンドン、東京間は約9500kmと書かれていましたがこれが(有効数字2けたの範囲で)正しいのか否かが分かりません。 この「goo おしえて」の過去の質問に正多角形に近似して球面上の2点間距離を求める方法が書かれていました。このことからすると球面上の円弧をその挟む角度から逆3各関数を使って求める方法はそんなに簡単ではないのでしょうか。 計算方法を教えてください。 私が計算に使った定数は次の通りです。 地球は球とする。 地球半径 6000km  東京、ロンドンの緯度と経度 (135、35) (0、51)

  • 緯度・経度からの距離計算

    ある地点の緯度・経度ともう一方のある地点の緯度・経度が わかっているとして、その各緯度・経度より2地点間の距離を 計算できないのでしょうか? 計算方法を知りたいのです。 なんか公式みたいなものはないのでしょうか? なんかヒントになるサイトのURLでもかまいません。 お願いします。教えて下さい。

  • 球面上の距離について

    球面上に与えられた2点の最短距離(大円距離)を求めるには球の中心とその2点で作られる2つの線分間の角度(rad)で求め、球の径との積を取れば求まると思います。これは、2点間に紐のような巻尺をあてて目いっぱい引張って測った長さとも言えると思います。 一方、直交曲線座標系の1つである球面座標でのベクトルA(=A1eθ+A2eφ)の長さの2乗は以下の様に表示されます。eθ,eφはそれぞれ、球面上での経度θ(東西)、緯度φ(南北)方向の基底ベクトルです。そのベクトルAの自分自身との内積は、 A・A=A1A1(eθ・eθ)+2A1A2(eθ・eφ)+A2A2(eφ・eφ) となります。ここで、座標の直交性から、(eθ・eφ)=0となります。ゼロとならないのは一般曲線座標とか斜交座標などです。そうしますと、 A・A=A1A1(eθ・eθ)+A2A2(eφ・eφ) x=Rcosφcosθ, y=Rcosφcosθ,z=Rsinφ (Rは球の半径) という関係から、具体的に基底ベクトル(eθ、eφ)を求めて、代入すると、 A・A=(A1Rcosφ)^2+(A2R)^2となります。((eθ・eθ)=0も確かめられます。) この式はAの(経度方向距離^2+緯度方向距離^2)となり、3平方の定理みたいになっています。これは冒頭で示した大円距離と一致しないと思います。具体的に式を求めるときはもっと複雑な式となるはずです。 このような展開のどこに間違いがあるでしょうか。基底ベクトルが空間的に変化することが考慮されていないことが問題のように思いますが。

  • 緯度・経度の計算方法

    地図中に緯度・経度の記入をしたいのですが、計算方法を教えて下さい。 緯度が34.5°と34.33333333°の位置とその2点間の距離が18497550mmであり、 経度が133°と133.25°の位置とその2点間の距離が22872700mmであることがわかっています。 このことから、緯度が34.4°の位置と経度が133.30°の位置を求める式を教えて下さい。 PS 一度、質問させていただいていたのですが、質問内容に不備があったため、締め切りしたうえ、再度投稿させていただきました。 よろしく、お願い致します。

  • 桁数の違う緯度・経度を変換するための計算式を知りたい

    例えば、「西新宿1-1」の緯度・経度が、 経度1394206.6、緯度354106.6と書かれていたり、 経度139.702712、緯度35.687415と書かれていたりするのですが、 どのような計算式で変換できるでしょうか。 ちなみにどちらも日本測地系で、 それぞれ別の方法で「西新宿1-1」を検索した結果です。 計算式がわかる方、どうぞよろしくお願いいたします。

  • 三次元球面について教えてください。

    二次元球面を地球の表面とすると、赤道は大円にあたります。その赤道の線上のどの点からも同じ距離にある点が2ヶ所あります。それは、北極と南極です。 三次元球面では、ある点からどの方向に真っ直ぐ進んでも、元の場所に戻ってきます。これは、大円といっていいのでしょうか。いいとして、ある大円にとって、北極や南極のような点はいくつありますか。無限でしょうか。なぜ、無限と思ったかというと、二次元球面では、赤道道上で赤道の方向をみたとき、右側に北極があれば左側に南極があります。しかし、三次元球面では、大円上で大円の方向を見たら、左右だけでなく、上下、斜めと無限に方向があるからです。 三次元球面において、大円上のすべての点から等距離にある点は、無限個あるのでしょうか。 その他、三次元球面では、こんな面白い特徴があるぞ、というのがあったら、教えてください。