2020/10/6(火)に火星が最接近(次回2022/12/1)
だそうです
N88-BASICで惑星の軌道(7回目)
のプログラムで確認できます。
2020/10/6付近で、
最接近中の地球と火星の間付近で
竜宮(暗い黄で表示)が地球に近づいて
きています。
糸川(暗い緑で表示)は遠くです
探査機のはやぶさ2が竜宮で
はやぶさが糸川でしたね
DATA文の内容で日付など、
いろいろな変更できます。
2020/10/6(火)に火星が最接近(次回2022/12/1)
だそうです
N88-BASICで惑星の軌道(7回目)
のプログラムで確認できます。
2020/10/6付近で、
最接近中の地球と火星の間付近で
竜宮(暗い黄で表示)が地球に近づいて
きています。
糸川(暗い緑で表示)は遠くです
探査機のはやぶさ2が竜宮で
はやぶさが糸川でしたね
DATA文の内容で日付など、
いろいろな変更できます。
ワードで編集した文章をコピペでブログに
張り付けているのですが、
文字サイズの変更で、以前は、
明朝体を拡大できましたが、
今は、拡大すると、明朝のままの拡大される
文字とゴシックに変換されて拡大される文字が
まだらになった状態になります。
なのでしばらく拡大できなかったのですが
ゴシック文字ならゴシックのまま拡大される
ことが分かりました。
今後、拡大文字はゴシックを使おうと思います。
N88-BASICで惑星の軌道(1回目)~(9回目)
ケプラー方程式をニュートン法などで解いて
楕円、双曲線、放物線軌道を描画する
この記事はリニューアルしました
https://ulprojectmail.blogspot.com/2021/10/n88-basic-1.html
N88-BASICで天体の軌道 (1回目)
惑星、小惑星、彗星の軌道を表示する
この記事はリニューアルしました
<u>https://ulprojectmail.blogspot.com/2021/10/n88-basic-2.html</u>
N88-BASICで天体の軌道 (2回目)
午後(PM)12時は昼間か深夜か
結論を言いますと
午後(PM)12時を昼間とすると簡素
になりますので、
デジタル時計の表示と同じ、
昼間は午後(PM)12時
深夜は午前(AM)12時
とするのが良いと思います。
午後(PM)12時を深夜とすると煩雑
になります。
考察
24時間表示の時刻をT時、
12時間表示の時刻をt時とすると、
0≦T<24
0≦t<12 ただし0は通常12と表記される。
日付が1日から2日に変わる瞬間はT=0時
丁度で、T=0時は2日です。
このタイミングで午後から午前に変わると
考えるのが自然です。
0≦T<12 が午前、12≦T<24 が午後
0≦t<12 が午前、 0≦t<12 が午後
12時間表記の0時は12時と表記されるので
午前12時(午前t=0)は深夜(T= 0時)
午後12時(午後t=0)は昼間(T=12時)
となります。
午前と午後の時間帯に一貫性があります。
午前12:00:00の1秒後は午前12:00:01です。
午前12:59:59の1秒後は午前 1:00:00です。
すべて午前です。
一方
T=0時までが午後で少し過ぎてから午前に
なるのであれば、日付の変更と午後と午前の
変更のタイミングが違う(2つある)事になり
ます。
24時間の時
0≦T<12 が午前、12≦T<24 が午後
12時間の時
0≦t<12 が午前、 0≦t<12 が午後
と12時を表示しなければ問題ありませんが
12時を表示する時
0<t≦12 が午前、 0<t≦12 が午後
で、午後12時は午前0時なので、
同じ時刻に午後と午前両方存在することになり、
午前と午後の時間帯に一貫性がありません。
さらに午後と午前の切り替わるタイミングが
日付が変わるタイミングとズレることになる
という2つもの煩雑さが生まれます。
更に、
午後12:00:00の1秒後は午前12:00:01ですか?
ならば、午後12:00:00.00の0.01秒後は
午前12:00:00.01ですか?
それとも、
午後12:00:00の1秒後は午後12:00:01なら
午後12:59:59の1秒後は午前 1:00:00ですか?
12時の途中または12時と1時の間という中途半端な
タイミングで午後と午前が切り替わります。
どちらにしても煩雑すぎですね。
簡素に0時の事を12時と表記すると考えれば
良いのではないでしょうか、
0時を12時と表記するのはアナログ時計の
名残と割り切りましょう。
12時からスタートするのが気持ち悪いと思う方も
いらっしゃるかと思いますが、
上記の3つもの煩雑さに比べれば些細な事だと
思います。
NL-BASICとnl20906.zip(ampm001.bas)は
以下のリンクからダウンロードできます。
Readme.txtを読んで遊んで下さい。
下記リストをマウスで選択しCtrl+cでコピーし、
NL-BASICの画面でAlt+v(Ctrl+vではないので注意)
でプログラムを読込めます。
ampm001.bas
100 '------------------------------------------------------------
110 ' 24時間表示→12時間表示 by ULproject for N88-BASIC
120 '------------------------------------------------------------
130 INPUT "HH:MM:SS="; T$
140 H = VAL(LEFT$(T$, 2))
150 B$ = RIGHT$(T$, 6)
160 IF H < 12 THEN A$ = "AM " ELSE A$ = "PM "
170 T = H MOD 12
180 IF T = 0 THEN T = 12
190 A$ = " " + A$ + RIGHT$(STR$(T + 100), 2))
200 PRINT A$; B$
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を読んで遊んで下さい。