どうも、カーブミラーです。
今回は、文字の回転をさせるアニメを作ります。ようするに文字を傾かせたり逆さにしたりを繰り返してアニメGIFにします。
本記事は、ChatGPT(有料版)
で行なっております。画像は
あります。 あしからず。
ニュースがないので、
さっそく、本題です。
今回は、
文字の回転をさせる
アニメGIFを作ります。
なぜ、これをするのか、ですが
単なる興味です😅
回転だけでなく
移動もさせました。
単なる回転だけだと
面白くないので😸
では
経緯のやり取りをどうぞ。
Pythonコードが出てきますが
割愛します(長いので😅)
user
CodeInterpreterで描画した文字を回転させるなんてできますか? 横倒しにするとか。
ChatGPT
はい、CodeInterpreterで文字を回転させることは可能です。Pythonのmatplotlib
ライブラリを使用して、文字を回転させて描画することができます。以下はその一例です。
(コード)
このコードでは、文字「回転した文字」を90度回転させて描画します。他の角度に変更したい場合は、rotation
パラメータの値を調整してください。たとえば、45度回転させたい場合は、rotation=45
とします。
(ダウンロードリンク)
user
CodeInterpreterで、“A”を45度ずつ左回転させて、360度回転させるアニメGIFを作成してください。
ChatGPT
(“A”の反時計回りの回転アニメGIF)
user
背景を512×512にして
ChatGPT
(画素数が512×512の回転アニメGIF)
user
文字を回転させながら、移動させることは可能?
ChatGPT
文字を回転させながら移動させることも可能です。matplotlib.animation
を使用して、文字の位置をフレームごとに更新することで、回転と移動を同時に行うことができます。以下はその例です。
(コード)
このコードでは、文字「A」を回転させながら左から右へ移動させるアニメーションを作成します。実行してみます。
(ダウンロードリンク)
user
右から左にお願いします
ChatGPT
(ダウンロードリンク)
user(最後まで回転してないよ)
最後に文字の傾きをなくしてください。つまり、360度回転して欲しいです
ChatGPT
(ダウンロードリンク)
これで下記の内容で作成されました。
・画素数を512×512
・“A”を反時計回りに回転(最後まで)
・右から左に移動
・アニメGIF化
新たなセッションで
これを再現するには
最終的なコードをコピーして、
行なおうとします。
コードは
ダウンロードリンクの右側に
“[>_]”をタップすれば見れます。
ところが
コードを新しいセッションに
コピペしても動きません。
理由は
ライブラリの読み込みの記述が
書かれていないことが原因です。
ではどうしたら?
ChatGPTさんに依頼しました😅
同じセッションの続きです。
user
新たなセッションで指示して、このアニメGIFを作成するための指示Promptを作成してください。
ChatGPT
以下は、アニメGIFを作成するためのPythonコードを含む指示プロンプトです。新しいセッションでこのプロンプトを使用してください。
以下のPythonコードを使用して、文字「A」を45度ずつ回転させながら右から左に移動し、最終的に元の角度に戻るアニメーションGIFを作成してください。背景サイズは512x512です。
```python
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
# 文字の設定
text = "A"
angles = np.concatenate((np.arange(0, 360, 45), [0])) # 最後に角度0を追加
positions = np.linspace(0.9, 0.1, len(angles))
# 背景サイズを512x512に設定
fig, ax = plt.subplots(figsize=(5.12, 5.12))
ax.axis('off')
text_obj = ax.text(0.9, 0.5, text, fontsize=50, ha='center', va='center')
# アニメーションの更新関数
def update(i):
angle = angles[i % len(angles)]
pos = positions[i % len(positions)]
text_obj.set_rotation(angle)
text_obj.set_position((pos, 0.5))
return text_obj,
# アニメーションの作成
ani = animation.FuncAnimation(fig, update, frames=len(angles), interval=500, blit=True)
# GIFとして保存
ani.save('/mnt/data/rotating_moving_A_full_rotation.gif', writer='imagemagick')
plt.close(fig)
この指示プロンプトを新しいセッションで実行することで、同じアニメーションGIFを作成することができます。
また、
Code Interpreterを使うことを
明示しないと、Pythonを
処理してくれません。
そこで、
上記Promptの先頭に
“CodeInterpreterで、”を
追記して送信します。
みなさんの
作品制作の糧に
なれば、幸いです。
今回は、ここまで。