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)は
以下のリンクからダウンロードできます。
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)は
以下のリンクからダウンロードできます。
Readme.txtを読んで遊んで下さい。