pythonのturtleモジュールを使って図形を描く【角度指定☆left/right】
今回は、パイソンのturtle(タートル)モジュールを使って絵を描くという前回の続き。キャンバスに絵を描く為にforward/left/rightを使う。フォワードは前進とか前に進むって意味で、left(レフト)は左、right(ライト)は右って意味だよ!(分からなかったから調べた)
じゃあ、パイソンのturtleモジュールを使って絵を描く!後編(?)はっじまるよ~~
※ 式の冒頭に「 >>> 」がある時、それはパイソンシェルで実行しています
>>> import turtle
>>> 亀 = turtle.Pen()
でキャンバスを呼び出す
import turtleとはpythonに「君のturtleモジュールを使わせて~」とお願いする行為である。pythonは手持ちのモジュールを無償で貸してくれる。私のような貧民から金を巻き上げない。優しい性格である。
>>> import turtle
>>> 亀 = turtle.Pen()
の
>>> 亀 = turtle.Pen()
↑これでPen機能を呼び出している。
細かく説明すると、この「 亀 = turtle.Pen() 」を入力した時、初めてキャンバスが出現する。颯爽と現れたキャンバスには黒く小さな矢印が鎮座している。
turtle(タートル)モジュールというくらいだから、これがpythonにとっての亀なのだろう。機械が人間の顔をどう認識してるかという話にも繋がってくる。普段私たちが見ている人の顔と、機械から見えている人の顔はおそらく違うのだろう。同じ青色でも、その青から強烈なインクブルーを連想する人もいれば、緑が入り混じったような海の青を連想する人もいる。私のようなネモフィラの青を連想する者もいるし、機械も人も捉え方は多種多様なのだ(^~^)
PC「機械は人の表情とか読むの下手なんだよな」
私も空気読むの苦手だから分かる・・・。
じゃあ亀に歩いてもらおっかな~♪
>>> import turtle
>>> 亀 = turtle.Pen() に続けて
亀.forward(50)と打ってみる
おおーーー矢印(亀)が進んだーー!!
"forward"って「進む」って意味なんだけど
まさしくそれを体現してるね!!
※ turtle.Pen()のPenは大文字じゃないとエラーになる。pythonは小文字と大文字の区別をしているのか?
気になったから実験した。黒い背景の例の画面を開く。コマンドライン?コマンドプロンプトっていうのかな?この画面で「PYTHON」と打ったらパイソンは無事呼び出された。しかし・・・まあ当たり前っちゃ当たり前なんだけど、パイソンにタートルモジュールをインポートするコードは大文字の場合拒否された。エラーになってしまった。小文字でいいものをわざわざ大文字で入力し直したりする変人以外は特に気にしないでいいと思う。
じゃあアイドルのパイソンシェルに戻るよー
>>> import turtle
>>> 亀 = turtle.Pen()
>>> 亀.forward(50)
亀が50歩歩く。
この(50)の中の数字を変えたらどうなるんだろう?
どうせならでかくやってみよう!!(≧∇≦*)
「亀.forward(50)」から
「亀.forward(500)」にしたその結果・・
物凄いスピードで亀は進んで、あっという間に私の目の届かない所へ行ってしまわれた。亀とは思えない俊敏さである。
※俊敏(頭が鋭く働き、行動がすばやいこと)
そうそう、さっきから( )の中に数字をいれてるけど、この数字=ピクセルだからねー。亀.forward(10)だと亀が10ピクセル進むという意味。画面上の一番小さな点の単位をピクセルというのだ(^v^*)
「ドット」と「ピクセル」って同じ?
や。違う。ドットは光の強弱を表示する時の最小の点を指すもので(初期ファミコンの映像がそれ)ピクセルっていうのは写真とかのカラー画像を表すための最小の点を指す。
ドット=ファミコン
ピクセル=カメラ・写真
一般人はこう覚えておいて差し支えないだろう。
ところでさー「 亀.forward(50) 」で亀が右に50ピクセル進んだけど、別方向に歩いてもらうにはどうしたらいいかなあ?
ここで出ました☆角度の指定☆
forwardをleftに変える。
そうすることで亀の進路方向を変更できる。角度の向きは分度器を思い出すといいよ!正面が0度。片手をまっすぐ横に開いた方向が90度。背面が180度。ぐるっと一周まわったところが360度。
実際やってみよう~
>>>import turtle
>>> 亀 = turtle.Pen()
>>> 亀.forward(50)
>>> 亀.left(90)
右に向いてる→が↑に変わる
やった!亀の向きが変わったね!(^^)
亀.left(90)を繰り返すと
>>> 亀.left(90)
>>> 亀.left(90)
亀の方向が90度ずつ変わる。
leftは車のハンドルと同じなんだ!ぶうううん!!!ここで勘の良い人はleftがあるなら、○○もあるんじゃないの?と気づいたはず。それは全く正解で「 right 」も存在する。 亀.right(90) と入力すると、亀.left(90)とは逆方向に90度向きが変わる。下記のようにrightとleftを交互に組み合わせる。
>>> 亀.right(90)
>>> 亀.left(90)
パイソンシェルじゃなく、エディタに保存してやってみた
import turtle
亀= turtle.Pen()
亀.right(90)
亀.left(90)
亀.right(90)
亀.left(90)
亀.right(90)
亀.left(90)
亀.right(90)
亀.left(90)
亀.right(90)
亀.left(90)
亀.right(90)
亀.left(90)
実行すると亀の向きが振り子のように左右を反復する。凄い速さだ。人間なら首がもげている。※亀が可哀想だからあまり右往左往させないでね(><。)
でもこれで方向転換の仕方が分かった。
次は図形を描いてみよう♪
これでどんな図形ができるかな~~
import turtle
亀=turtle.Pen()
亀.forward(50)
亀.left(50)←角度間違えて
亀.right(50)←角度戻した^^;
亀.left(90)
亀.forward(50)
亀.left(90)
亀.forward(50)
亀.left(90)
亀.forward(50)
四角形が描けましたーー
上でやったことの解説
import turtleでモジュールをインポート
亀=turtle.Pen() でキャンバスを作る為のペン機能を呼び出す
亀.forward(50)50ピクセル前進
亀.left(90) 亀の角度を左方向に90度回転
亀.forward(50)50ピクセル前進
亀.left(90)亀の角度を90度回転
亀.forward(50)前進
亀.left(90) 亀の角度を90度回転
亀.forward(50)50ピクセル前進
☆.。.:*・四角完成☆.。.:*・
☆キャンバスに描いたものを全て消したい時には☆
resetと呼ばれる機能を使います♪
コードの最後に 亀.reset() を加えると
描いたものが消えるよ(^^)いわゆる全消しだー
そして亀も最初の位置に戻る。
長くなっちった;後でまとめ作るね!
じゃあ今日はこの辺で♪チャオ(^^)/