LoginSignup
1
2

pythonで図形を組み合わせてミ〇キーを作る

Posted at

python初心者がAnacondaで某キャラを作りました

どうもこんにちは
授業で初めてpythonを触りそこで図形を組み合わせて某キャラを作って遊びました。そこでの体験を忘れないように、ここに記録しておきます

コードを書く前に

まず最初にAnacondaをダウンロードします

パソコンの設定でAnaconda Promptを探してきてそこで

spyder

と入力すると、
image.png
こんな感じのものが出てきます。
そこで新規ファイルを作成してもいいし、最初のファイルでもいいのでコードを書いて実際に作っていきたいと思います。
今回は図形を組み合わせて作っていくわけですが、多分画像やグラフが出力されるところがデフォルトでは赤い矢印のところになっています。
image.png
しかしここでは小さい&見にくいです。
なので
設定>lPythonコンソール>グラフィックス>グラフィックスのバックエンドを自動に変えてください
設定の画像
こんな感じです。

コードを書いていこう

さあ実際に書いていこうと思います。

import matplotlib.pyplot as plt
import matplotlib.patches as pat
  • import matplotlib.pyplot as plt import matplotlib.patches as patは、図形・画像を出力するために使うものです。
    またそれぞれplt patという名前でインポートしています。

初心者なのでよくわかっていないですが、正直自分がわかりやすいのであれば、この部分を自分の好きな名前に変えてもいいかも…
(でも、自分が今回作るにあたり、いろいろ調べた限りこの名前がほとんどこんな感じの名前だった…)

次に

fig = plt.figure(figsize=(6,6))

ax = fig.add_subplot(111)
"""
ax.grid(axis = "both")
"""
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
  • fig = plt.figure(figsize=(6,6))6×6の大きさで描画領域を作ります。
  • ax = fig.add_subplot(111)1行1列のグリッドで1つのプロットをするという事らしい
  • ax.grid(axis = "both") グリッド線を入れるかどうか入れたい人は入れた方が良い
  • ax.set_xlim(-4, 4) ax.set_ylim(-4, 4)x軸y軸共に-4から4の間で書く範囲を決めて表示させる
C = pat.Circle(xy = (0, 0), radius = 1.1, color = "black") #真ん中の丸
C1 = pat.Circle(xy = (-1.207, 1.207),radius=0.7, color = "black") #左耳
C2 = pat.Circle(xy = (1.207, 1.207),radius=0.7, color = "black") #右耳
C3 = pat.Ellipse(xy = (0, -0.1), width = 0.5,height=0.3, edgecolor = "white", facecolor = "black") #鼻
C4 = pat.Ellipse(xy = (0.35, 0.35), width = 0.3, height = 0.6, color = "white") #右目
C5 = pat.Ellipse(xy = (-0.35, 0.35), width = 0.3, height = 0.6, color = "white") #左目
C6 = pat.Ellipse(xy = (0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #右目中の黒
C7 = pat.Ellipse(xy = (-0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #左目中の黒
C8 = pat.Arc(xy = (-0.9, 0), theta1=270, theta2=320, width = 1, height = 1, edgecolor = "white") #C8~C10は口
C9 = pat.Arc(xy = (0.9, 0), theta1=220, theta2=270, width = 1, height = 1, edgecolor = "white")
C10 = pat.Arc(xy = (0, -0.05), theta1=210, theta2=331, width = 2, height = 1.3, edgecolor = "white")

それぞれの説明はコードの横の の後ろの文字を読んでください。

#それぞれを表示させるための物
ax.add_patch(C)
ax.add_patch(C1)
ax.add_patch(C2)
ax.add_patch(C3)
ax.add_patch(C4)
ax.add_patch(C5)
ax.add_patch(C6)
ax.add_patch(C7)
ax.add_patch(C8)
ax.add_patch(C9)
ax.add_patch(C10)

これで先ほどの図形を表示させます。
最後に

#最後にこれを書いて図を表示させる
plt.show()

このコードを書くことによって図形を表示させます。

結果

image.png
ちょっとパチモン感が否めないのですが、初めてpythonを触った人が作ったので勘弁してください。

全体のコード

全体のコードを見たい人はこちら

import matplotlib.pyplot as plt
import matplotlib.patches as pat

fig = plt.figure(figsize=(6,6))

ax = fig.add_subplot(111)
"""
ax.grid(axis = "both")
"""
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)

C = pat.Circle(xy = (0, 0), radius = 1.1, color = "black") #真ん中の丸
C1 = pat.Circle(xy = (-1.207, 1.207),radius=0.7, color = "black") #左耳
C2 = pat.Circle(xy = (1.207, 1.207),radius=0.7, color = "black") #右耳
C3 = pat.Ellipse(xy = (0, -0.1), width = 0.5,height=0.3, edgecolor = "white", facecolor = "black") #鼻
C4 = pat.Ellipse(xy = (0.35, 0.35), width = 0.3, height = 0.6, color = "white") #右目
C5 = pat.Ellipse(xy = (-0.35, 0.35), width = 0.3, height = 0.6, color = "white") #左目
C6 = pat.Ellipse(xy = (0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #右目中の黒
C7 = pat.Ellipse(xy = (-0.35, 0.25), width = 0.3, height = 0.4, edgecolor = "white", facecolor = "black") #左目中の黒
C8 = pat.Arc(xy = (-0.9, 0), theta1=270, theta2=320, width = 1, height = 1, edgecolor = "white") #C8~C10は口
C9 = pat.Arc(xy = (0.9, 0), theta1=220, theta2=270, width = 1, height = 1, edgecolor = "white")
C10 = pat.Arc(xy = (0, -0.05), theta1=210, theta2=331, width = 2, height = 1.3, edgecolor = "white")

#それぞれを表示させるための物
ax.add_patch(C)
ax.add_patch(C1)
ax.add_patch(C2)
ax.add_patch(C3)
ax.add_patch(C4)
ax.add_patch(C5)
ax.add_patch(C6)
ax.add_patch(C7)
ax.add_patch(C8)
ax.add_patch(C9)
ax.add_patch(C10)

#最後にこれを書いて図を表示させる
plt.show()

最後に

初心者が作ったのでつたない部分もたくさんありますが、いろいろと勘弁してください。改善点ありましたらX(旧Twitter)de
教えてください!!

X(旧Twitter)

終わりチャンチャン…初めて書いたから疲れた…

1
2
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
1
2