N88-BASICで三角関数(1回目)~(2回目)の記事は

下記ブログでリニューアルしました

 

https://ulprojectmail.blogspot.com/2021/09/1.html

三角関数 (1回目)

 

https://ulprojectmail.blogspot.com/2021/09/2.html

三角関数 (2回目)

 

N88-BASICで三角関数(3回目)

長半径a,離心率e(0≦e<1)の楕円を点で描画する。

 

1. 中心Oから±c離れた焦点F,F'

 

長半径a

離心率e = c / a

焦点距離c = ae

短半径  b = √(a2 - c2) = a√(1 - e2)

 

r = 線分PF、r'= 線分PF'と置くと、

楕円はr + r' = 2aとなる

Pの集合です。

 

この関係を余弦定理で表すと、

r'2 =  (2c)2 + r2 - 2(2c)r cos(180゚-θ)

  sin(180゚-θ) =  sinθ

  cos(180゚-θ) = -cosθ

  tan(180゚-θ) = -tanθ

(2a - r)2 =  4c2 + r2 + 4cr cosθ

-4ar + 4a2 = 4c2 + 4cr cosθ

(a + c cosθ)r = a2 - c2 

r = {(a2 - c2)/a} / (1 + c/a cosθ)

ここで、c / a = e、

(a2 - c2)/a = a2(1 - e2)/a = a(1 + e2)

より、

r = a(1 - e2) / (1 + e cosθ)

θ= 90゚の時のrを半直弦 ℓ = a(1 - e2)

θ=  0゚の時のrを近点距離q = a(1 - e)

θ=180゚の時のrを遠点距離Q = a(1 + e)

という。

[ θ= 90゚ ⇒ r = a(1-e2)     /(1+0) ]

[ θ=  0゚ ⇒ r = a(1-e)(1+e) /(1+e) ]

[ θ=180゚ ⇒ r = a(1-e)(1+e) /(1-e) ]

 

楕円の式

半直弦ℓ = a(1 - e2)を使うと、

r = ℓ / (1 + e cosθ)

 

極座標系(r,θ)は回転が簡単など利点が
多いと思います。

 

極座標系(r,θ)と直交座標系(x,y)

原点から距離r(動径r)、角度θの位置を

(x,y)とすると、

 

極座標系⇒直交座標系は、

x = rcosθ (cosθ = x / rより)

y = rsinθ (sinθ = y / rより)

 

直交座標系⇒極座標系は、

r = √(x2 + y2)

θ= Tan-1(y/x) = Cos-1(x/r)

となる。

 

BASICの座標系のy軸は下が正なので

グラフを書くときは上下逆転させる

必要があります。

点は少し大きめにするため、

CIRCLEで描いています。

間隔は5°ずつにしています。

 

NL-BASICとnl~.zip(cos003.bas)は

以下のリンクからダウンロードできます。

NL-BASIC(N88-BASIC互換?)ホームページ

Readme.txtを読んで遊んで下さい。

 

 

 

N88-BASICで三角関数(4回目)

近点距離q,離心率eの軌道を点で描画する。

(e=0),楕円(0<e<1),放物線(e=1),双曲線(e>1)

 

離心率  e = c / a = c / (q + c)

近点距離q = a(1 - e) = a - c

遠点距離Q = a(1 + e) = a + c

焦点距離c = ae

長半径  a = q / (1 - e) = q + c

短半径  b = √(a2 - c2) = a√(1 - e2)

半直弦 ℓ = a(1 - e2) = a(1-e)(1+e) = q(1 + e)

 

e = 1(放物線)の時、a = q / (1 - e) = q / 0

で、aが定義できないので、aの代わりに

qを使うことにします。

 

r = ℓ / (1 + e cosθ)より

r = q(1 + e) / (1 + e cosθ)

 

θは5°ずつ変化させています。

 

ただし、e=1,θ=180°のときは、

0で割ることになるので、エラーに

なりますが、エラーチェックは

していません。

 

NL-BASICとnl~.zip(cos004.bas)は

以下のリンクからダウンロードできます。

NL-BASIC(N88-BASIC互換?)ホームページ

Readme.txtを読んで遊んで下さい。