mikeo_410
  1. 2.地球
    1. 0.地球のWebGL
    2. 1.地球楕円体上の点
    3. 2.地球儀と楕円体の描画
    4. 3.3Dの直線と平面
    5. 4.卯酉線
    6. 5.楕円の標準形
    7. 6.5点で決まる楕円
    8. 7.曲率半径と平均曲率
    9. 8.楕円の弧の長さ
    10. 9.法線と鉛直線
    11. 10.まっすぐ進む
    12. 11.球面の正方形
    13. 12.航程線とメルカトル図法
    14. A1.地図、地球儀(Rスクリプト、データ)
    15. A2. 付録6.計算式集の公式

球面の正方形

球面に正方形を描こうと思いましたが方法が分からないので考えてみます。

正方形の辺は大円の弧です。大円は、球の中心Oを含む平面による球の切断面の截り線です。正方形の頂点を A、B、C、D とします。直線OAは点Aにおける球の接平面の法線です。他の頂点も同様で、原点Oと結んだ直線は、その点の法線です。したがって、平面ADOは、点A、Dに共通する法平面です。他の切断面も、それぞれ対応する頂点の法平面です。1つの頂点で交差する2つの平面は、その頂点の接平面に対して垂直です。

上の図のように頂点と、交差する線分のなす角に名前を付けます。\overline{AU},\ \overline{GU} は、それぞれ点A、Gから、平面ADOとBCOの交線に降ろした垂線です。

球の半径を1とします。平面ADOとBCOの成す角、平面ABOとCDOの成す角は共に 2θ とします。

2平面の成す角は、2平面の交線に直交する、それぞれの平面上の直線で測るので、∠POQ、∠ROSが共に  2θ です。∠POTと∠ROT、∠AUGは、その半分で、共に θ です。

半径が1なので大円の弧PQ、RSの長さは中心角に等しく、共に 2θ です。

球面上の正方形を、∠POQ、∠ROS、あるいは弧PQ、RSの長さで与えることにして、これを 2θ とします。

球面上の正方形の辺は大円の弧ですが、その弦は正方形を成します。弦の長さ s は、2等辺三角形AODの半分の直角三角形AOEから、

        s=\overline{AB}=\overline{BC}=\overline{CD}=\overline{DA}=2sin\gamma{}

また、

        \overline{EO}=\overline{FO}=\overline{GO}=\overline{HO}=cos\gamma{}

なので、

        \overline{IO}=cos\gamma{}cos\theta{}

        s=\overline{AB}=\overline{BC}=\overline{CD}=\overline{DA}=2\cdot{}\overline{IO}\cdot{}tan\theta{}=2cos\gamma{}cos\theta{}\cdot{}tan\theta{}=2cos\gamma{}sin\theta{}

したがって、

        2sin\gamma{}=2cos\gamma{}sin\theta{}

        tan\gamma{}=sin\theta{}                        (1)

左図は弦が描く正方形と、その外接円です。この円の半径を r とすると、

2r=\sqrt{2}s

r=\frac{s}{\sqrt{2}}=\sqrt{2}sin\gamma{}                (2)

また、

m=\frac{s}{2}=\frac{r}{\sqrt{2}}=sin\gamma{}

弦が作る正方形の頂点と、点 I との中心角を ω とすると、

ω=∠IOA=∠IOB=∠IOC=∠IOD

sin\omega{}=r=\sqrt{2}sin\gamma{}                (3)

図の δ は、球面三角法の余弦定理から、

cos\delta{}=\frac{cos\theta{}-cos\omega{}cos\gamma{}}{sin\gamma{}sin\omega{}}

あるいは、

sin\delta{}=\frac{sin\theta{}}{sin\omega{}}=\frac{sin\theta{}}{r}                (4)

地図の話しの根本は、球が矩形に分割できないことを前提にしているのだと思います。分割しようとするとどうなるのか知りたいと思います。

2θ=30° の正方形は、上の図のように縦横に12個並びます。さらに90°離れた駒を一周回して、上の右の図のようになります。

残ったところは三角に見えるので、これ以上四角に分割できないことは明らかにも思えます。

しかし、図を回転して見ると、上の左の図ような箇所に、1コマずつ置けそうにも見えます。

上の右の図のように頂点に名前を付けて、作図に使ったXYZ直交座標の値から、対角線に当たる線分BDとPQの長さを計算してみます。また、平面AOPとAOQの成す角(球面の∠PAQ)を計算してみます。

作図は、最初の説明の通り、4つの平面の式から4つの交線を求め、交線と球の交点を求めて描いています。

  1. > # 線分BDの長さ
  2. > sqrt((D[1]-B[1])^2+(D[2]-B[2])^2+(D[3]-B[3])^2)
  3. [1] 0.7086986
  4. > # 線分PQの長さ
  5. > sqrt((Q[1]-P[1])^2+(Q[2]-P[2])^2+(Q[3]-P[3])^2)
  6. [1] 0.613751
  7. > # 平面APO、AQOのなす角
  8. > P1 <- Plane(c(0,0,0),A,P)
  9. > P2 <- Plane(c(0,0,0),A,Q)
  10. > Angle2Planes(P1,P2)/pi*180
  11. [1] 78.4771

前述の式(1)から(4)によって、\overline{BD}=2r 、球面の∠PAQ=2ω を計算してみます。

  1. > θ <- pi/12
  2. > γ <- atan(sin(θ))
  3. > r <- sqrt(2)*sin(γ)
  4. > δ <- asin(sin(θ)/r)
  5. > c(2*r, 2*δ)
  6. [1] 0.7086986 1.6378338
  7. > (2*δ) /pi*180
  8. [1] 93.84097

\overline{BD}=0.7086986 、\overline{PQ}=0.613751 となり、同じ図形をはめ込むことはできないことが分かりました。

球面の正方形の頂点の角は 93.84° と90°より大きく、点Aの周りの角度は、

        93.84097\times{}3+78.4771\simeq{}360°

となります。

  1. Plane <- function(p1,p2,p3){
  2.   u <- VectorProduct(c(p3[1]-p1[1], p3[2]-p1[2], p3[3]-p1[3]),
  3.                      c(p2[1]-p1[1], p2[2]-p1[2], p2[3]-p1[3]))
  4.   O <- -(u$x * p1[1] + u$y * p1[2] + u$z * p1[3]);
  5.   list(L=u$x,M=u$y,N=u$z,O=O)
  6. }
  7. Angle2Vectors <- function(v1,v2){
  8.   x1<-unname(unlist(v1[1])); y1<-unname(unlist(v1[2])); z1<-unname(unlist(v1[3]))    
  9.   x2<-unname(unlist(v2[1])); y2<-unname(unlist(v2[2])); z2<-unname(unlist(v2[3]))    
  10.   acos((x1*x2+y1*y2+z1*z2)/
  11.          (sqrt(x1^2+y1^2+z1^2)*sqrt(x2^2+y2^2+z2^2)))
  12. }
  13. Angle2Planes <- function(P1,P2){
  14.   if(is.list(P1)){
  15.     L1<-P1$L; M1<-P1$M; N1<-P1$N
  16.   } else {
  17.     L1<-P1[1]; M1<-P1[2]; N1<-P1[3]
  18.   }
  19.   if(is.list(P2)){
  20.     L2<-P2$L; M2<-P2$M; N2<-P2$N
  21.   } else {
  22.     L2<-P2[1]; M2<-P2[2]; N2<-P2[3]
  23.   }
  24.   Angle2Vectors(c(L1,M1,N1),c(L2,M2,N2))
  25. }


題目一覧へmikeo_410@hotmail.com(updated: 2022/12/17)