Pythonで同じようなタートルグラフィックスが使えないかと調べると,turtleという呼ばれるライブラリがあらかじめ用意されており,楽勝かと思われた。
お絵書きでPythonを学ぶというページにしたがって,コマンドラインで実行してみると,画像が出ない。どうやら,pythonからtcl-tkへのつなぎが必要らしい。brew install python-tk とごそごそやっていたらすぐ動くようになった。
落とし穴があった。インタラクティブな実行ではなく,プログラムファイルを作って一括処理を試みたときだ。見本のファイル名をturtle.pyとしたのがまずくて,循環参照のエラーが出てしまった。その原因がわからなくて踠いていたが,こういうときはエラーメッセージで検索するのが一番である。ファイル名をkame.pyとして事無きを得た。
次により大きな罠が控えていた。jupyter環境でpythonを実行させるほうが便利だろうと,kame.pyのコードをjupyter lab で実行させたところ,_tkinterが見つからないエラーで一歩も進めない。ネットの記事にはpyenvコマンドを駆使して,pythonを一回アンインストールしてからtcl-tkをインストールした上で,再度pythonをインストールすればよいとある。
その手順通りのままには進めずに四苦八苦したものの,指示通りにコマンドラインからtcl-tkを使ったライブラリが正しくインストールできたようには見えた(これは最初の段階と本質的には変わっていない)。それでもjupyterでは同じエラーが出てだめなのだ。どうやら,jupyterのpythonではturtleが使えないということになっているらしい(未確認)。
ProcessingのプログラムをPythonに移植したものを次に示す。
#!/opt/homebrew/bin/python3
# usage ./kame.py m n
import turtle
import sys
m = float(sys.argv[1])
n = float(sys.argv[2])
r = 0
g = 0
b = 0
turtle.colormode(255)
turtle.begin_fill()
for i in range(255):
r = (r+3) % 25
g = (g+5) % 255
b = (b+7) % 255
turtle.pencolor(r,g,b)
turtle.forward(200)
turtle.left(360/m*n)
turtle.end_fill()
turtle.done()
pythonのトレーニングをしたと思うことにする。コマンドラインでm,nは入力しているが,簡単な有理数でないものを入れたい場合は,m=3.1415926 n=1 を代入すればよい。
図:pythonのΠ角形タートルグラフィックスの途中
0 件のコメント:
コメントを投稿