プログラミング

【python】図形のアニメーション作成ー重なりの判定

Pythonで図形の描画と接触判定

今回はpythonより図形のアニメーションの紹介です。

pythonではライブラリが豊富なので図形の描画やアニメーションも簡単に出来ちゃうんです。

python初心者の方は必見です!!

 

図形の表示はもちろんですが其れだけにとどまらず、2つの図形が重なり判定が出来るように見ていきましょう。

>より高度な考え方やコーディングが出来るようになれば楽しいですよ(^_^)

 

目標
  • 基本文型を覚える
  • 図形の描画
  • 2つの図形が重なった時の接触判定

 

本題に入る前にpythonでプログラミング学習をしている方に超絶朗報です。

 

我々の様な「人工知能」「機械学習」などに関心を持ちpythonを選んだ人達のおすすめオンライン学習サイトがあります。

 

それは「PyQ」と言うpythonだけに超絶特化した学習サイトです。

わたくし
わたくし
Python  ONLY!!

 

PyQオンラインプログラミング学習サイト

プロゲートよりも専門的で学習範囲を網羅しているゾ!!

初心者向けから実用的な知識が豊富に揃っている為、爆発的な成長で一気にプログラマとして活躍できる可能性があります。

>誰でも自宅に居ながら機械学習を学べる点が非常にいいですよね( ^ω^)

 

╲コース一覧と料金を見る╱

 

前置きが長くなりましたね(笑)

それでは本題に入っていきましょう。

【知っておきたい】Pythonで図形を表示する方法

python図形の表示方法

 

PythonのTkinterライブラリを使用することで簡単に図形を表示させることが出来ます。

そして、決まった命令を入力することで、ほんの数行のコーディングで完成します。

>簡単だよwww

  • Tkinterライブラリをimport
  • ウィンドウの作成
  • キャンバス(Canvas)の描画
  • 表示させたい図形を作る

たったのこれだけですwww

 

基本的なことですのである程度の暗記は必須です。

【基礎】pythonで図形を描画してみよう

それでは実際に図形を描画していきましょう!!

 

実行結果は以下の様になります。

python 図形の表示

この様な図形の表示は超絶基本事項なので暗記してしまいましょう。

【応用】図形の重なり判定をしてみよう

それではお待ちかねの2つの図形が重なった時の接触判定のコードを書いていきましょう( ^ω^)

 

ざっくりとした仕様としては、以下のようにします。

  1. 2つの円を表示(1つは固定してもう一方はマウスドラッグで動かせる)
  2. 接触した瞬間に固定ではない円の色を変更する

 

なお、2つの円の距離を調べるためにルート√の計算を用います。

よって、numpymathでもいい)をインポートします。

 

実行結果は以下の様になります(ツイッターですみません( ^ω^))

アニメーションの粗さは大目に見てください(汗)

ちょこっと解説

2つの円が重なったかどうかを判定する「hit_check()」関数と、マウスドラッグに反応する「move_circle(e)」関数を作りました。

 

2つの円の距離(dis)が2つの円の半径の総和(r1+r2)以下であれば接触していることとなります。

 

このような接触判定を判断するPythonの数学的基本要素は【文系プログラマーのためのPythonで学び直す高校数学】で身につけることが出来ます

 

move_circle関数に引数として”e”を渡す理由は、今回では座標を把握する為です。

※引数は必ず必要!!!

tkinterライブラリのbind()関数に”<Motion>”とmove_circle()を渡すことでマウスドラッグに反応し、move_circle()が実行される仕組みとなっております。

【まとめ】より高度なプログラムを再現していくために

より高度なプログラムを再現していくためには、学習のツールや環境が大事です。

冒頭でも紹介したPyQで学習するか以下の教科書をお勧めします。

 

Python初心者の方には青色の表紙の方をお勧めします。

 

ゲーム作りを通してPythonの基本的な知識や数学的な思考をメキメキ鍛えられるはずです!

>それにゲーム作りって楽しいですよ( ^ω^)

人気ブログランキング
関連記事