0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ChatGPT+Code Interpreter】で時計っぽい感じのもののアニメGIFを作成します。

Posted at

 どうも、カーブミラーです。

 今回は、時計っぽい感じのもののアニメGIFを作成します。

本記事は、ChatGPT(有料版)
で行なっております。画像は
あります。 あしからず。

 まずは、ニュース。

 Perplexityが
  二周年になりました。
   Perplexityポスト


 さて、本題です。

 今回は、
  時計っぽい感じのものの
   アニメGIFを作成します。

 時計というよりも
  アナログのストップウォッチを
   イメージしてもらえれば
    いいかと思います。

 知らないという人も
  いらっしゃるかもですが😅
   今はデジタルオンリーだもんね。


 それはさておき、本題に。

 最初、中心点を中心にして
  回転する黒線をアニメGIFに
   していたのですが、
    たまたま時計っぽい動きが
     出てきたので記事にします😸

 出来上がりがこちら。
rotating_line_clockwise.gif

 ここに至るまでに
  いろいろとあったのですが、
   時計回りを指定したのに
    なぜか反時計回りになる
     ということが発生しました。

 そんなやり取りをどうぞ。


user
CodeInterpreterで、白い正方形(512×512)の中央に、中央を軸にした時計の針のように、黒線を時計回りに一回転するアニメGIFを作成してください。
コードは不要です。
不明な点があれば質問してください。

GPT-4o
(ダウンロードリンク)

user(反時計回りじゃん)
時計回りを指定しましたが、逆回りになっています。
原因を教えてください。

GPT-4o
時計回りに見えない原因は、極座標系での角度の増加方向と、画像表示時のY軸の方向が関係しています。通常、極座標系では角度の増加が反時計回りになりますが、画像表示時のY軸が下方向に増えるため、結果的に反時計回りに見えてしまうのです。

これを修正するためには、角度の増加を反転させる必要があります。具体的には、角度を時計回りに増やすために負の値を使います。

修正したコードで再度GIFを作成します。
(ダウンロードリンク)


 これで出来上がったのが
  上記のアニメGIFです。

 なぜ反時計回りになったのか。

 小難しい説明なので
  言い直してもらいました😅


user
説明を中学生でもわかるようにお願いします。

GPT-4o
わかりやすく説明しますね。

問題の原因:

  • 反時計回りに見える理由は、数学では角度が増える方向が反時計回りになっているからです。
  • 画像では上が0度で、右が90度、下が180度、左が270度となり、通常の角度の増え方(正の角度)が反時計回りになります。

解決方法:

  • 時計回りにしたい場合、角度を減らす(負の角度を使う)ようにすれば良いです。

user
この原因の説明だと、時計回りになると思われますが?

GPT-4o
確かに、説明が誤解を招くものでした。正確には以下のように説明します。

原因の説明

  • 通常、数学では角度が増える方向が反時計回りになります。
  • プログラムで線を描くとき、角度が増えると線が反時計回りに回転します。

しかし、今回の場合では、画像のY軸が上に行くほど値が小さくなるため、反時計回りに見えてしまいます。これは、通常の座標系とは逆の動きをするためです。

修正方法

  • 角度の増え方を負の方向にする(角度が減るようにする)ことで、線が時計回りに動くようになります。

これにより、線が時計回りに回転するアニメーションGIFを作成することができました。

user(これは前提条件が必要だね)
前提条件から説明してください。

GPT-4o
わかりました。最初から順を追って説明します。

前提条件

  1. 座標系:

    • 画像の座標系では、左上が (0, 0) で、右下に行くほどX軸とY軸の値が大きくなります。
    • 通常の数学の座標系とは異なり、Y軸の値が増える方向が下になります。
  2. 角度:

    • 数学的には、角度が増える方向(正の角度)は反時計回りです。
    • 0度は右方向、90度は上方向、180度は左方向、270度は下方向です。

問題の原因

アニメーションを作成する際に、角度を増やしていくと、通常の数学的な定義に従って線が反時計回りに回転します。しかし、画像の座標系ではY軸が上下逆なので、結果的に反時計回りに見えます。

解決方法

時計回りに見せるためには、角度を増やすのではなく、減らす(負の角度を使う)必要があります。これにより、線が時計回りに回転するように見えます。

実際の修正

具体的には、36フレームで1回転するアニメーションを作成する際に、角度を0度から360度まで増やすのではなく、0度から-360度まで減らしていくようにしました。

この方法で修正した結果、線が時計回りに回転するアニメーションGIFを作成することができました。


 まぁ、こんな感じです。

 座標系を意識して
  指示を出さないと
   今回のようなことになる、
    という話でした。

 これは
  ChatGPTが吸収して
   最初から出して欲しい
    問題ではありますが
     Code Interpreterを
      指定した時点で、
       そうした考慮が
        なくなるのでしょう。

 みなさんの
  作品制作の糧に
   なれば、幸いです。

 今回は、ここまで。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?