カメときれいなパターンを描く方法
先週ポストするのを忘れたが、ここで我々は行きます.私は、Pythonに決めました🐍 私のskillsetに加えること.主にバックエンド(フラスコ、django)が、将来分岐することがあります.私は次のguide Redditの上で/u/travisjungrothによって掲示されます.現在進行中ですRunestone Interactive と
作成するパターンです.
最初は、このパターンは非常に複雑に見えます、しかし、我々が小さい塊にそれを壊すならば、その管理可能です.形を探して、見ることができます、パイスライス:
さらに見ると、正方形に気づく.
さらに検討すると、4つの正方形のグリッドが見えます.
小さく始めて、解決策を解決しよう.まず、カメライブラリをインポートし、キャンバスを設定しましょう.
今、すべてのセットアップコードが行われ、問題に取り組む.
の作成から始めましょう
関数を呼び出してみましょう.
今私たちは知っている
今我々
次の結果を得る必要があります.
亀が現在あるところに注意してください.位置( 0 , 0 )です.これは、正方形とグリッドを描画するための起源です.これは、我々が後で見るように、それらを回転させるとき、格子がゆがめられることがないように、必要です.
私たちはほとんど終わった.今、我々は円のパイスライスを作成する必要があります.以前、あなたが我々が作っているきれいなパターンを見たならば、あなたは何かに気がつくかもしれません:
それは、わずかに回転する格子のスタックです.別の観測、グリッドの各広場に5つのパイスライスがあります.包みましょう
最終コード
追加リソース
Turtle Library Documentation
Runestone Interactive
PexelsからのIVA Mu
thinkcspy
コース.NOTE: You should be familiar with Python basics such as variables, for loop, and functions. Also, the Turtle library.
作成するパターンです.
最初は、このパターンは非常に複雑に見えます、しかし、我々が小さい塊にそれを壊すならば、その管理可能です.形を探して、見ることができます、パイスライス:
さらに見ると、正方形に気づく.
さらに検討すると、4つの正方形のグリッドが見えます.
小さく始めて、解決策を解決しよう.まず、カメライブラリをインポートし、キャンバスを設定しましょう.
import turtle
tess = turtle.Turtle()
wn = turtle.Screen()
tess.speed(10)
tess.pensize(2)
tess.color('blue')
wn.bgcolor('lightgreen')
各行を調べましょうimport turtle
これはタートルライブラリをインポートします.tess = turtle.Turtle()
これはtess
私たちのカメのオブジェクト.wn = turtle.Screen()
wn
パターンが描画されるスクリーンオブジェクトを作成します.tess.speed(10)
これは、ペンの描画速度を調整します.1
が遅い10
速い.tess.pensize(2)
これは、線のサイズを調整します.tess.color('blue')
これはペン色を青に設定します.wn.bgcolor('lightgreen')
これは、キャンバスの背景色をlightgreenに設定します.今、すべてのセットアップコードが行われ、問題に取り組む.
の作成から始めましょう
drawSquare
関数.def drawSquare(t, sz):
for i in range(4):
t.fd(sz)
t.left(90)
各行で行きましょうdef drawSquare(t, sz):
これはdrawSquare
つのパラメータをとる関数.t
カメオブジェクトを表します、そしてsz
正方形の辺の長さの大きさ.for i in range(4):
私たちはfor
ループを4回繰り返します. t.fd(sz)
これはタートルオブジェクトを前方に動かしますsz
ユニット. t.left(90)
これはカメを回転させる90
度.関数を呼び出してみましょう.
drawSquare(tess, 100)
コールdrawSquare
2つの引数を指定します.tess
タートルオブジェクトとして100
サイズとして.次の結果を得る必要があります.今私たちは知っている
drawSquare
作品は、グリッドを作り始めることができます.心に留めておくべきこと.バック小学校では、私はユニークな図形や円を描画するためにコンパスを使用します.また、図形を描画するコンパスを中心に.この知識は、後に我々を助けます.をつくりましょうdrawGrid
関数.def drawGrid(t, sz):
for i in range(4):
drawSquare(t, sz)
t.left(90)
def drawGrid(t, sz):
我々は宣言するdrawGrid
つのパラメータをとる関数.t
タートルオブジェクトsz
はグリッドの正方形の辺の長さです.for i in range(4):
再び、我々はfor
ループを4回繰り返します.これはグリッドの4つの正方形を説明します. drawSquare(t, sz)
これはdrawSquare
つのパラメータを持つ関数.t
タートルオブジェクトとsz
正方形のサイズです.t.left(90)
これで亀は左に曲がる90
度.今我々
drawGrid
関数が完了したらテストしましょう.drawGrid(tess, 100)
この呼び出しdrawGrid
を返します.tess
タートルオブジェクトと100
は正方形の長さの大きさです.次の結果を得る必要があります.
NOTE: Arguments and parameter have different meaning. Arguments is data passed to function and parameters are what the function accepts.
亀が現在あるところに注意してください.位置( 0 , 0 )です.これは、正方形とグリッドを描画するための起源です.これは、我々が後で見るように、それらを回転させるとき、格子がゆがめられることがないように、必要です.
私たちはほとんど終わった.今、我々は円のパイスライスを作成する必要があります.以前、あなたが我々が作っているきれいなパターンを見たならば、あなたは何かに気がつくかもしれません:
それは、わずかに回転する格子のスタックです.別の観測、グリッドの各広場に5つのパイスライスがあります.包みましょう
def main():
for i in range(5):
drawGrid(tess, 100)
tess.left(18)
main()
行単位:def main():
我々は宣言するmain
関数は、コードを保持します.これは必須ではありませんが、コードを整理します. for i in range(5):
5つのパイスライスを覚えています?はい、私たちは何度も繰り返されます.このfor
ループは5回繰り返します.drawGrid(tess, 100)
コールdrawGrid
を返します.tess
タートルオブジェクトとして100
正方形の側の長さとして.tess.left(18)
グリッドを描くと18
度左.あなたは疑問に思うかもしれません18
由来?我々を回す90
度それぞれの正方形を描画した後.我々は5グリッドを描画しているので、各グリッドが描画された後、ターンアングルを得るために分割します.90 // 5 = 18
.最終コード
# pretty-picture.py
import turtle
tess = turtle.Turtle()
wn = turtle.Screen()
tess.speed(10)
tess.pensize(2)
tess.color('blue')
wn.bgcolor('lightgreen')
def drawSquare(t, sz):
for i in range(4):
t.fd(sz)
t.left(90)
def drawGrid(t, sz):
for i in range(4):
drawSquare(t, sz)
t.left(90)
def main():
for i in range(5):
drawGrid(tess, 100)
tess.left(18)
main()
これをさらに洗練し、タートルセットアップコードをmain
関数.私は、このチュートリアルが問題解決にあなたを助けたことを望みます.問題は最初は難しく見えましたが、それを小さなビットに変えることは複雑さを減らしました.詳細については、次のリソースをチェックアウトします.追加リソース
Turtle Library Documentation
Runestone Interactive
PexelsからのIVA Mu
Reference
この問題について(カメときれいなパターンを描く方法), 我々は、より多くの情報をここで見つけました https://dev.to/mtrivera/how-to-draw-a-pretty-pattern-with-turtle-270nテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol