어떻게 거북이로 예쁜 도안을 그릴까
thinkcspy
과정을 공부하고 있다.NOTE: You should be familiar with Python basics such as variables, for loop, and functions. Also, the Turtle library.
이것은 우리가 만들 모델입니다.
처음에는 이런 패턴이 복잡해 보였지만, 만약 우리가 그것을 작은 덩어리로 분해한다면, 그것은 관리할 수 있을 것이다.모양을 찾으면 떡 그림 하나를 볼 수 있다.
만약 우리가 더욱 관찰한다면 정사각형을 발견할 수 있을 것이다.
네 개의 정사각형으로 이루어진 격자를 보았습니다.
작은 일부터 시작합시다. 노력하는 것이 문제를 해결하는 방법입니다.우선,turtle 라이브러리를 가져오고 캔버스를 설정합니다.
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')
그러면 캔버스 배경색이 연두색으로 설정됩니다.현재 모든 설정 코드가 완성되었으니, 우리가 이 문제를 해결합시다.
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
순환을 만들었는데, 이 순환은 네 번 교체되었다. 0, 1, 2, 3. t.fd(sz)
그러면 거북이 개체가 sz
개 단위로 앞으로 이동합니다. t.left(90)
이것은 거북이를 90
도 회전시켰다.함수를 호출해 보겠습니다.
drawSquare(tess, 100)
우리는 두 개의 매개 변수를 사용하여 drawSquare
:tess
을turtle 대상으로, 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
순환을 만들었고, 네 번 순환: 0, 1, 2, 3.이것은 격자 중의 네 개의 정사각형을 설명한다. 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)입니다.이것은 정사각형과 격자를 그리는 원점이다.이것은 필요한 것이다. 이렇게 하면 격자를 회전할 때 격자가 비뚤어지지 않을 것이다. 우리는 뒤에서 볼 것이다.
우리는 거의 완성했다.이제 우리는 원에서 케이크 슬라이스를 만들어야 한다.일찍이 우리가 만들고 있는 예쁜 도안을 보면 다음과 같은 것들을 발견할 수 있다.
이것은 가볍게 회전하는 격자 더미다.또 다른 관찰 결과는 격자의 각 정사각형에 다섯 개의 케이크 슬라이스가 있다는 것이다.다음과 같이 요약해 보겠습니다.
def main():
for i in range(5):
drawGrid(tess, 100)
tess.left(18)
main()
한 줄씩def main():
우리는 코드를 저장하기 위해 main
함수를 성명했다.이것은 필수적인 것이 아니지만, 코드를 질서정연하게 유지한다. for i in range(5):
그 파이 다섯 조각 기억나?네, 우리는 여러 번 교체했습니다. 이것은 다섯 개의 격자를 만들었습니다.이 for
의 순환은 다섯 번 반복된다. 0, 1, 2, 3, 4.drawGrid(tess, 100)
우리는 두 개의 매개 변수로 drawGrid
을 호출한다.tess
은 거북이의 대상이고 100
은 정사각형의 가장자리로 길다.tess.left(18)
격자를 그린 후, 우리는 18
도로 좌회전했다.너는 18
이라는 숫자가 어디에서 왔는지 생각할 수 있다.각 정사각형을 그리면 90
도 회전한다는 것을 기억하십시오.우리는 다섯 개의 격자를 그렸기 때문에, 각 격자를 그린 후에, 우리는 그것을 나누어 모서리를 얻는다.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()
우리는 그것을 더욱 개선하고turtle 설정 코드를 main
함수로 옮길 수 있습니다.나는 이 강좌가 네가 문제를 해결하는 데 도움을 줄 수 있기를 바란다.이 문제는 처음에는 어려워 보였지만 작은 덩어리로 바꾸면 복잡성을 줄일 수 있다.자세한 내용은 다음 리소스를 참조하십시오.기타 리소스
Turtle Library Documentation
Runestone Interactive
픽사의 에바 무스키(Iva Muškić) 재킷 사진
Reference
이 문제에 관하여(어떻게 거북이로 예쁜 도안을 그릴까), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mtrivera/how-to-draw-a-pretty-pattern-with-turtle-270n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)