turtle을 사용하여 선 그리기
Turtle 모듈
펜을 든 거북이가 그린 채색 도형을 조종할 수 있는 파이썬 버전이다.
아이를 위한 스크래치 등은 유명하지만, 사용 방법에 따라 좋은 교재가 될 수 있다.
이런 내가 이 그림이 대단하다고 생각해서 써봤는데...
그럼 샘플 코드입니다.포레스트라는 함수를 만들어보자.
turtlePicture.py
#
# turtle を import して線描画する
# 2020.06.15 ProOJI
#
import turtle
# kameSan オブジェクト生成
kameSan = turtle.Turtle()
# メソッドを作成しておく(再帰的用法)
def forest(n, length:int=1000)->None:
if n <= 0:
kameSan.forward(length)
return
''' 再帰 1 長さ = 1000 * 0.5 '''
forest(n-1, length * 0.5)
# 右に 85 度回転
# 緩やかから急に尖った方向へ
kameSan.right(85)
''' 再帰 2 長さ = 1000 ÷ 3 '''
forest(n-1, length / 3)
# 左に 170 度回転
# 急なターンで尖った針を描画
kameSan.left(170)
''' 再帰 3 長さ = 1000 ÷ 3 '''
forest(n-1, length / 3)
# 右に 85 度回転
# 再び緩やな方向へ着地するように
kameSan.right(85)
''' 再帰 4 長さ = 1000 ÷ 0.38 '''
forest(n-1, length * 0.38)
if __name__ == '__main__':
kameSan.penup()
kameSan.setpos(270, -20)
kameSan.pendown()
kameSan.left(180)
kameSan.speed(0)
forest(5)
kameSan.done()
이렇게 하면 선을 그릴 수 있다.그리고 살짝 가공해서 돌아오는 곳에 색상 변화를 설정하면
#
# turtle を import して線描画します
# kameSan は移動するとき線描画をします
# 2020.06.15 ProOJI
#
import turtle
# kameSan オブジェクト生成
kameSan = turtle.Turtle()
# メソッドを作成しておく(再帰的用法)
def forest(n, length:int=1000)->None:
if n <= 0:
kameSan.forward(length)
return
''' 再帰 1 長さ = 1000 * 0.5 '''
kameSan.pencolor("red")
forest(n-1, length * 0.5)
# 右に 85 度回転
# 緩やかから急に尖った方向へ
kameSan.right(85)
''' 再帰 2 長さ = 1000 ÷ 3 '''
kameSan.pencolor("blue")
forest(n-1, length / 3)
# 左に 170 度回転
# 急なターンで尖った針を描画
kameSan.left(170)
''' 再帰 3 長さ = 1000 ÷ 3 '''
kameSan.pencolor("green")
forest(n-1, length / 3)
# 右に 85 度回転
# 再び緩やな方向へ着地するように
kameSan.right(85)
''' 再帰 4 長さ = 1000 ÷ 0.38 '''
forest(n-1, length * 0.38)
if __name__ == '__main__':
# penup ペンを上げているので描画なし
kameSan.penup()
# Position へ移動
kameSan.setpos(270, -20)
# pendown ペンを下ろすのでここから描画される
kameSan.pendown()
# 左へ 180度旋回する
kameSan.left(180)
kameSan.speed(0)
forest(5)
kameSan.done()
나는 어느 선을 어떻게 그렸는지 잘 안다.
Reference
이 문제에 관하여(turtle을 사용하여 선 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ProOJI/items/56612d640d8a8c88d695텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)