Python turtle graphics : モードのstandardとlogoの違いについて - turtle.mode()

turtle graphicsで用いられるモードとは

turtle graphicsではいくつかモードを選ぶことが出来ます。ここで言うモードとは初期進行方向と角度がどちら回りなのかなどの違いで区別されています。通常であれば特に必要が無ければモードを変更することはないでしょう。

さてPythonのturtle graphics用意されているモードで主に用いられるのは
  • standard
  • logo
の2つ。そしてもう一つ
  • world
というのもあり、こちらはユーザーが独自のworld coordinatesを定義した場合にこのモードになります。今回はworldについては解説は省き、starndardとlogoの2つについて解説していきます。
 

モードの確認、設定方法

使用してるモードを確認するには以下のコマンドを実行します。
turtle.mode()

モードを設定するときは例えばlogoモードにするには以下のようにします。
turtle.mode("logo")

standardモード

turtle graphicsの初期状態ではおそらくこのstarndardモードになっていると思います。このモードでは以下の設定となります。
  • 初期進行方向 : 右向き
  • 角度 : 反時計回り
これを次の図を用いて説明します。この図では一定方向進んだところで角度を記述して初期位置に戻り、次に角度を30度増やして再び同じ動作をするということを繰り返しています。初期進行方向が右向きなので、初期位置から真っ直ぐ右に行ったところが0度となっています。そして角度は反時計回りに増えていきます。
(見た時に分かりやすくなるように、角度が増える毎にフォントと矢印のサイズを大きくしていってます)
standardモードの図示
standardモードの図示


logoモード

同様にlogoモードについて説明すると以下のようになります。
  • 初期進行方向 :上向き
  • 角度 : 時計回り
さきほどと同様に図で示すと以下の通り。logoモードでは初期進行方向は真上で、角度は時計回りに増えるようになっています。

logoモードの図示
logoモードの図示

図示に用いたソースコード

図示に用いたソースコードは以下の通り。

import turtle
turtle.mode("logo")

turtle.speed(0)
turtle.delay(0)

theta = 0
i = 0
while True:
  theta = 30 * i
  if theta >=360:
     break

  turtle.turtlesize(1+0.2*i,1+0.2*i,1+0.2*i)
  turtle.seth(theta)
  turtle.tilt(90)
  turtle.fd(200)
  turtle.stamp()
  turtle.tilt(-90)
  turtle.write(" {:.0f}".format(turtle.heading()), font=("",10+i,""))
  turtle.home()
  i = i + 1

turtle.hideturtle()
turtle.penup()
turtle.goto(0,250)
turtle.write("turtle.mode(\"{}\")".format(turtle.mode()),font=("",24,"bold"),align="center")

turtle.mainloop()



まとめページ

Python turtle graphics まとめ


スポンサーリンク
Amazon商品リンク : Pythonプログラミング関連

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)