您的位置 首页 kreess

球面上三點確定任意一個圓(包括大圓)

圖一如圖一,已知三個點,點1(α1,β1);點2(α2,β2);點3(α3,β3)。求這三點確定的圓。我們都知道,單位球面上兩點之間的距離公式為:S=arc cos[cos

圖一

如圖一,已知三個點,點1(α1,β1);點2(α2,β2);點3(α3,β3)。求這三點確定的圓。

我們都知道,單位球面上兩點之間的距離公式為:

S=arc cos[cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2]

顯然,若所求的圓存在,那麼圓心到三個點的距離就是相等的。設圓心為O(α0,β0)。

因為圓心到點1、點2的距離相等,所以

arc cos[cosβcosβ1cos(α-α1)+sinβsinβ1]=arc cos[cosβcosβ2cos(α-α2)+sinβsinβ2]

cosβcosβ1cos(α-α1)+sinβsinβ1=cosβcosβ2cos(α-α2)+sinβsinβ2

兩邊同時除以cosβ,得

cosβ1cos(α-α1)+tanβsinβ1=cosβ2cos(α-α2)+tanβsinβ2

tanβsinβ1-tanβsinβ2=cosβ2cos(α-α2)-cosβ1cos(α-α1)

tanβ(sinβ1-sinβ2)=cosβ2cos(α-α2)-cosβ1cos(α-α1)

tanβ=[cosβ2cos(α-α2)-cosβ1cos(α-α1)]/(sinβ1-sinβ2) (1)

所以圓心必滿足(1)式。圖一的藍色線就是(1)式的圖像。

同樣,圓心到點2、點3的距離相等,所以

arc cos[cosβcosβ2cos(α-α2)+sinβsinβ2]=arc cos[cosβcosβ3cos(α-α3)+sinβsinβ3]

cosβcosβ2cos(α-α2)+sinβsinβ2]=cosβcosβ3cos(α-α3)+sinβsinβ3

兩邊同時除以cosβ,得

cosβ2cos(α-α2)+tanβsinβ2=cosβ3cos(α-α3)+tanβsinβ3

tanβsinβ2-tanβsinβ3=cosβ3cos(α-α3)-cosβ2cos(α-α2)

tanβ(sinβ2-sinβ3)=cosβ3cos(α-α3)-cosβ2cos(α-α2)

tanβ=[cosβ3cos(α-α3)-cosβ2cos(α-α2)]/(sinβ2-sinβ3) (2)

所以圓心必滿足(2)式。圖二的紅色線就是(2)式的圖像。

再同樣,圓心到點1、點3的距離相等,所以

arc cos[cosβcosβ3cos(α-α3)+sinβsinβ3]=arc cos[cosβcosβ1cos(α-α1)+sinβsinβ1]

cosβcosβ3cos(α-α3)+sinβsinβ3=cosβcosβ1cos(α-α1)+sinβsinβ1

cosβcosβ3cos(α-α3)+sinβsinβ3=cosβcosβ1cos(α-α1)+sinβsinβ1

兩邊同時除以cosβ,得

cosβ3cos(α-α3)+tanβsinβ3=cosβ1cos(α-α1)+tanβsinβ1

tanβsinβ3-tanβsinβ1=cosβ1cos(α-α1)-cosβ3cos(α-α3)

tanβ(sinβ3-sinβ1)=cosβ1cos(α-α1)-cosβ3cos(α-α3)

tanβ=(cosβ1cos(α-α1)-cosβ3cos(α-α3))/(sinβ3-sinβ1) (3)

所以圓心必滿足(3)式。圖二的黃色線就是(3)式的圖像。

由於圓心同時滿足( 1 )、( 2 )式,所以

[cosβ2cos(α-α2)-cosβ1cos(α-α1)]/(sinβ1-sinβ2)=[cosβ3cos(α-α3)-cosβ2cos(α-α2)]/(sinβ2-sinβ3)

[cosβ2cos(α-α2)-cosβ1cos(α-α1)](sinβ2-sinβ3)=[cosβ3cos(α-α3)-cosβ2cos(α-α2)](sinβ1-sinβ2)

cosβ2cos(α-α2)sinβ2-cosβ1cos(α-α1)sinβ2-cosβ2cos(α-α2)sinβ3+cosβ1cos(α-α1)sinβ3=cosβ3cos(α-α3)sinβ1-cosβ2cos(α-α2)sinβ1-cosβ3cos(α-α3)sinβ2+cosβ2cos(α-α2)sinβ2

-cosβ1cos(α-α1)sinβ2-cosβ2cos(α-α2)sinβ3+cosβ1cos(α-α1)sinβ3=cosβ3cos(α-α3)sinβ1-cosβ2cos(α-α2)sinβ1-cosβ3cos(α-α3)sinβ2

-cosβ1(cosαcosα1+sinαsinα1)sinβ2-cosβ2(cosαcosα2+sinαsinα2)sinβ3+cosβ1(cosαcosα1+sinαsinα1)sinβ3=cosβ3(cosαcosα3+sinαsinα3)sinβ1-cosβ2(cosαcosα2+sinαsinα2)sinβ1-cosβ3(cosαcosα3+sinαsinα3)sinβ2

-cosβ1sinβ2(cosαcosα1+sinαsinα1)-cosβ2sinβ3(cosαcosα2+sinαsinα2)+cosβ1sinβ3(cosαcosα1+sinαsinα1)=cosβ3sinβ1(cosαcosα3+sinαsinα3)-cosβ2sinβ1(cosαcosα2+sinαsinα2)-cosβ3sinβ2(cosαcosα3+sinαsinα3)

-cosαcosα1cosβ1sinβ2-sinαsinα1cosβ1sinβ2-cosαcosα2cosβ2sinβ3-sinαsinα2cosβ2sinβ3+cosαcosα1cosβ1sinβ3+sinαsinα1cosβ1sinβ3=cosαcosα3cosβ3sinβ1+sinαsinα3cosβ3sinβ1-cosαcosα2cosβ2sinβ1-sinαsinα2cosβ2sinβ1-cosαcosα3cosβ3sinβ2-sinαsinα3cosβ3sinβ2

-cosαcosα1cosβ1sinβ2-cosαcosα2cosβ2sinβ3+cosαcosα1cosβ1sinβ3-cosαcosα3cosβ3sinβ1+cosαcosα2cosβ2sinβ1+cosαcosα3cosβ3sinβ2=+sinαsinα1cosβ1sinβ2+sinαsinα2cosβ2sinβ3-sinαsinα1cosβ1sinβ3+sinαsinα3cosβ3sinβ1-sinαsinα2cosβ2sinβ1-sinαsinα3cosβ3sinβ2

-cosα1cosβ1sinβ2-cosα2cosβ2sinβ3+cosα1cosβ1sinβ3-cosα3cosβ3sinβ1+cosα2cosβ2sinβ1+cosα3cosβ3sinβ2=tanα(+sinα1cosβ1sinβ2+sinα2cosβ2sinβ3-sinα1cosβ1sinβ3+sinα3cosβ3sinβ1-sinα2cosβ2sinβ1-sinα3cosβ3sinβ2)

-cosα1cosβ1sinβ2+cosα1cosβ1sinβ3+cosα2cosβ2sinβ1-cosα2cosβ2sinβ3-cosα3cosβ3sinβ1+cosα3cosβ3sinβ2=tanα(+sinα1cosβ1sinβ2-sinα1cosβ1sinβ3-sinα2cosβ2sinβ1+sinα2cosβ2sinβ3+sinα3cosβ3sinβ1-sinα3cosβ3sinβ2)

tanα=(-cosα1cosβ1sinβ2+cosα1cosβ1sinβ3+cosα2cosβ2sinβ1-cosα2cosβ2sinβ3-cosα3cosβ3sinβ1+cosα3cosβ3sinβ2)/(+sinα1cosβ1sinβ2-sinα1cosβ1sinβ3-sinα2cosβ2sinβ1+sinα2cosβ2sinβ3+sinα3cosβ3sinβ1-sinα3cosβ3sinβ2)

tanα=[cosα1cosβ1(-sinβ2+sinβ3)+cosα2cosβ2(sinβ1-sinβ3)+cosα3cosβ3(-sinβ1+sinβ2)]/[+sinα1cosβ1(sinβ2-sinβ3)+sinα2cosβ2(-sinβ1+sinβ3)+sinα3cosβ3(sinβ1-sinβ2)]

tanα=[cos(alpha1)cos(beta1)(-sin(beta2)+sin(beta3))+cos(alpha2)cos(beta2)(sin(beta1)-sin(beta3))+cos(alpha3)cos(beta3)(-sin(beta1)+sin(beta2))]/[+sin(alpha1)cos(beta1)(sin(beta2)-sin(beta3))+sin(alpha2)cos(beta2)(-sin(beta1)+sin(beta3))+sin(alpha3)cos(beta3)(sin(beta1)-sin(beta2))]

α0=α=arctan{[cosα1cosβ1(-sinβ2+sinβ3)+cosα2cosβ2(sinβ1-sinβ3)+cosα3cosβ3(-sinβ1+sinβ2)]/[+sinα1cosβ1(sinβ2-sinβ3)+sinα2cosβ2(-sinβ1+sinβ3)+sinα3cosβ3(sinβ1-sinβ2)]} (4)

根據 (4)式可以求出所求圓的圓心的α0角。

根據 (1)式及所求圓的圓心的α0角,就可以求出所求圓的圓心的β0角:

β0=β=arctan{[cosβ2cos(α0-α2)-cosβ1cos(α0-α1)]/(sinβ1-sinβ2) (5)

因為所求圓的圓心到所求圓的平面的垂直線亦垂直於所求圓的平面與赤道平面相交線,所以,所求圓的初始角γ[1]為

γ=pi/2-α0

同樣,因為通過球心和所求圓的圓心的直線垂直於所求圓的平面,所以,所求圓的平面與赤道平面的夾角的正切k[2]是:

k=-1/tan(β0)

所以,所求的圓的圓心到點1的距離,或者說圓的球面半徑r為

r=arc cos[cosβ1cosβ0cos(α1-α0)+sinβ1sinβ0]

若r等於pi/2,那麼這三個點所確定的就是大圓,否則就是小圓。

將所求出的γ、k、r代入下面的公式,我們就會得到由三點確定的圓的表達式。

圖二

β=arctan[k*sin(α-γ)]+arcsin[cos(r)*(1+k^2)^(1/2)/(1+(k*sin(α-γ))^2)^(1/2)];[3]

所以,在球面上已知三點就可以確定一個圓。這個圓可以是大圓,也可以是小圓。如圖二綠色曲線就是1、2、3所確定的小圓。

參考

  1. ^https://zhuanlan.zhihu.com/p/152944873
  2. ^https://zhuanlan.zhihu.com/p/152944873
  3. ^https://zhuanlan.zhihu.com/p/152944873

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部