
宇宙への打ち上げ軌道をPythonで描きたい!
ということで、宇宙に行きたい思いをAIとPythonにぶつける
※今回はプログラムが乱発されますので、過程のプログラムは省きたいと思います。
>プロンプト
>最後の赤い円を追加する方法なんだけど、
>赤い線が上に伸びていって、そこから円を描きたいんだけど。
で、できたのが以下
それは花火とか、爆弾だな。
いやしかしこちらの言い方がまずかったかも。
>プロンプト
>最後の赤い円は青い円と同じ中心で、青い円よりも大きい感じで、描画のスタートが赤い線が一番上まで行ったところから続きで。
ちげえ
>プロンプト
>赤い線が上にまっすぐ伸びていき、衛星軌道みたいな軌道に移行する
うーん。おしいような、おしくないような。
一旦このままではダメなので、
少しアプローチを変えて、打ちあがる線を置いておき、まずは衛星軌道の赤い円を描きたい。
>プロンプト
>青い円と同じ中心のもう少し大きい赤い円を描いてほしい。その赤い円の線の軌跡を動画で描写
うーん。とりあえず打ち上げ軌道を抜きにすれば近づいたような
ちょっと自分でプログラムを改修
うん。まあ近づいたかなあ
この感じで、後は打ち上げと一緒に出来れば…
ただこのままプロンプトエンジニアリングを続けていてもいいものができそうもない。
というわけで、一旦、プロンプトエンジニアリングをあきらめる。
なんやかんや今までのPythonを解読しながら、調整を繰り返し、
以下を自分で作成。
-------------------------------------------
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
fig, ax = plt.subplots()
fig.set_size_inches(5, 5)
ax.set_aspect('equal')
ax.axis('off')
circle = plt.Circle((0.5, 0.5), 0.4, edgecolor='blue', facecolor='none', linewidth=1)
ax.add_patch(circle)
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
line, = ax.plot([0.5, 0.5], [0.6, 0.6], color='red', linewidth=2)
dot, = ax.plot([0.5], [0.6], 'ro')
# アルファ値(透明度)を徐々に減らす
alpha_values = np.linspace(1, 0, 50)
def update(num):
if num < 50:
new_y = 0.6 + num * 0.0075
line.set_ydata([0.6, new_y])
line.set_alpha(alpha_values[num])
dot.set_data([0.5], [new_y])
else:
angle = (num - 50) * 0.04 + np.pi / 2 # 角度の調整
x = 0.5 + 0.475 * np.cos(angle)
y = 0.5 + 0.475 * np.sin(angle)
dot.set_data([x], [y]) # dot を再利用
return line, dot
ani = animation.FuncAnimation(fig, update, frames=200, interval=100, blit=True)
ani.save("line_extending_with_fadeout.gif", writer='pillow')
-------------------------------------------
そして、できたのがこれ。
なんとかくやりたいことはできているのか、いないのか。
もう少し美しい軌道にしたい。
というわけで、次回はAIに相談せず、
美しい軌道作成に挑む…

