Python描画-スノーフレーク(コッホ曲線)



Python Drawing Snowflake



コッホ曲線は一種のフラクタルであり、その形状はスノーフレークに非常に似ているため、コッホスノーフレークまたはスノーフレーク曲線とも呼ばれます。

以下はPythonのタートルパッケージです。リアルタイムで描画できます。



import turtle def koch(t,n): #Define a function Koch curve, complete the drawing function if n <5 : t.fd(n) return m = n/3 koch(t,m) t.lt(60) koch(t,m) t.rt(120) koch(t,m) t.lt(60) koch(t,m) def snowflake(t, n): # Draw a snowflake, each side is a Koch curve for i in range(3): koch(t,n) t.rt(120) bob = turtle.Turtle() bob.color('black') bob.penup() # Brush up (cannot draw) bob.goto(-150,90) #Go to this point bob.pendown() # Pen down (start drawing) snowflake(bob,300) # Call the function to start drawing snowflakes turtle.mainloop()

効果画像:

python-()



そのような短いコードに関係なく、そこに含まれる数学的知識は単純ではありません。コッホ曲線の生成は、実際には再帰的なプロセスです。常に再帰的にコッホを呼び出すことで、正三角形で構成されるスノーフレークを形成できます。記事の冒頭に示したように。ウィキペディアのより専門的な説明はこれです:

線分ABが与えられると、コッホ曲線は次の手順で生成できます。
1.線分を3つの等しい部分(AC、CD、DB)に分割します
2. CDをベースとして、正三角形DMCを外側に(内側と外側に自由に)描きます。
3.ラインセグメントCDを取り外します
4. AC、CM、MD、およびDBに対してそれぞれ1〜3を繰り返します。
コッホスノーフレークは、正三角形の3つの辺から生成されたコッホ曲線で構成されています。各コッホ曲線の長さは無限であり、微分可能性のない連続曲線です。

また、それを改善したり、ランダムな機能を追加したり、ブラシの色を変更したり、空に雪の効果を作成したりすることもできます。



Pythonテクノロジー学習交換グループ:695185429