> 백엔드 개발 > 파이썬 튜토리얼 > Turtle.done()의 기능은 무엇입니까?

Turtle.done()의 기능은 무엇입니까?

青灯夜游
풀어 주다: 2021-02-03 15:53:18
원래의
20357명이 탐색했습니다.

Python에서 "turtle.done()"의 기능은 프로그램을 일시 중지하고 브러시 그리기를 중지하는 것이지만 사용자가 Python Turtle 그래픽 창을 닫을 때까지 그리기 창은 닫히지 않습니다. 그 목적은 사용자에게 시간을 주는 것입니다. 그래픽을 보려면 그래픽 창이 없으면 프로그램이 완료되는 즉시 그래픽 창이 닫힙니다.

Turtle.done()의 기능은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Python 3 버전, Dell G3 컴퓨터.

turtle.done()의 역할: 프로그램을 일시 중지하고 브러시 그리기를 중지하지만 사용자가 Python Turtle 그래픽 창을 닫을 때까지 그리기 창은 닫히지 않습니다.

Turtle 라이브러리는 Python 언어로 이미지를 그리는 데 매우 인기 있는 함수 라이브러리입니다. x를 가로 축으로 하고 y를 세로 축으로 하는 좌표계의 원점에서 시작하는 작은 거북이를 상상해 보세요. . 함수 명령어 세트의 제어는 이 평면 좌표계에서 이동하므로 크롤링 경로에 그래픽이 그려집니다.

거북이 그림의 기본 지식:

1. 캔버스(캔버스)

캔버스는 우리를 위해 그리기 영역을 확장하는 거북이입니다. 위치. .

캔버스 크기 설정

Turtle.screensize(canvwidth=None, canvheight=None, bg=None), 매개변수는 캔버스의 너비(단위 픽셀), 높이 및 배경색입니다. Le: Turtle.scrensize (800,600, "Green")

Turtle.scrensize ()#기본 크기로 돌아가기 (400, 300) Turtle.setup (너비 = 0.5, 높이 = 0.75555 , startx=None, starty =없음), 매개변수: 너비, 높이: 입력된 너비와 높이가 정수인 경우 픽셀을 나타내고, 소수인 경우 컴퓨터 화면의 비율을 나타냅니다. (startx, starty): 이 좌표는 직사각형 창을 나타냅니다. 왼쪽 상단 모서리 정점의 위치입니다. 비어 있으면 창이 화면 중앙에 위치합니다. Le: Turtle.Setup (폭 = 0.6, 높이 = 0.6)

Turtle.setup (폭 = 800, 높이 = 800, startx = 100, starty = 100)

2 .

2.1 브러시 상태

캔버스에는 기본적으로 캔버스 중심을 원점으로 하는 좌표축이 있고, X축의 양의 방향을 향하고 있는 작은 거북이가 있습니다. 좌표 원점. 여기서는 작은 거북이를 설명하기 위해 두 단어를 사용합니다: 좌표 원점(위치), x축의 양의 방향(방향)을 향함 거북이 그리기에서 위치와 방향은 작은 거북이의 상태(브러쉬)를 설명하는 데 사용됩니다. ).属 브러시 속성

브러시 속성 (브러시 속성, 색의 폭, 칠하는 선의 폭 등)

1) Turtle.pensize () : 설정

2) Turtle.pencolor(): 전달된 매개변수가 없으며 현재 브러시 색상이 반환됩니다. 전달된 매개변수는 "녹색"과 같은 문자열일 수 있습니다. "빨간색" 또는 RGB 3-튜플.

3) Turtle.speed(speed): 브러시 이동 속도를 설정합니다. 브러시 그리기 속도 범위는 [0,10] 정수입니다. 숫자가 클수록 빠릅니다.

2.3 그리기 명령

거북이 그리기를 제어하는 ​​명령은 여러 가지가 있습니다. 이 명령은 이동 명령, 브러시 제어 명령의 3가지로 나눌 수 있습니다. 글로벌 컨트롤.

(1) 브러시 이동 명령

Command

설명

turtle. 입장)

현재 브러시 방향으로 거리 픽셀 길이를 이동

turtle.backward(distance)

현재 브러시의 반대 방향으로 거리 픽셀 길이를 이동 ㅋㅋㅋ

도°를 시계 반대 방향으로 이동

turtle .pendown()

이동할 때 그래픽을 그리며, 기본값은 그리는 것입니다.

turtle.goto(x,y)

이동 브러시를 x 좌표, y

turtle.penup()

그래픽을 그리지 않고 펜을 들고 이동하는 데 사용됩니다 .

turtle.circle( )

양수(음수) 반경의 원을 그립니다. 이는 원의 중심이 브러시의 왼쪽(오른쪽)에 있음을 의미합니다. 원을 그립니다

setx( )

현재 x축을 지정된 위치로 이동

sety( )

현재 y축을 다음으로 이동합니다. 지정된 위치

setheading(angle)

현재 방향을 각도 각도로 설정

home()

현재 브러시 위치를 다음과 같이 설정합니다. 원산지는 동쪽을 향하고 있다.

dot(r)

지정된 직경과 색상으로 점을 그립니다

(2) 브러시 제어 명령

Command

Description

turtle.fillcolor(colorstring)


그리기 그래픽의 채우기 색상turtle.color(color1, color2 )펜색상=색상1, 채움색상=색상2를 동시에 설정turtle.filling()현재 채워져 있는지 반환 turtle .begin_fill()그래픽 채우기 시작 준비turtle.end_fill()채우기 완료turtle.hideturtle ()거북이 모양의 브러시 숨기기turtle.showturtle()거북이의 브러시 표시

(3) 전역 제어 명령

Command

Description

turtle.clear()

거북이 창을 지우지만 거북이 위치와 상태는 바뀌지 않습니다

turtle.reset()

창을 지우고 거북이 상태를 시작 상태로 재설정

turtle.undo ()

마지막 거북이 작업 실행 취소

turtle.isvisible()

현재 거북이가 표시되는지 여부를 반환

스탬프()

현재 그래픽 복사

turtle.write(s [,font=("font-name",font_size,"font_type")])

텍스트 쓰기 , s는 텍스트 내용이고, 글꼴은 각각 글꼴 이름, 크기 및 유형인 글꼴의 매개변수입니다.

command

,
Instructions

turtle.mainloop() 또는 Turtle.done()

이벤트 루프 시작 -

mainloop 함수의 Tkinter 을 호출하세요. 은 거북이 그래픽 프로그램의 마지막 문이어야 합니다.

turtle.mode(mode=None)

거북이 모드 설정( "표준"

"로고" 또는 "세상" ) 재설정을 수행합니다. 모드가 지정되지 않으면 현재 모드를 반환합니다. 모드 초기 거북이 제목 양의 각도 표준 오른쪽(동쪽) 시계 반대 방향 로고 위쪽(북쪽) 시계 방향

turtle.delay(delay=None)

설정 또는 반환 그리기 지연 밀리초.

turtle.begin_poly()

다각형의 정점 기록을 시작합니다. 현재 거북이 위치는 다각형의 첫 번째 정점입니다.

turtle.end_poly()

다각형의 정점 기록을 중지합니다. 현재 거북이 위치는 다각형의 마지막 정점입니다. 첫 번째 정점에 연결됩니다.

turtle.get_poly()

마지막으로 기록된 다각형을 반환합니다.

3. 명령 명령. 3.1 거북이 (반경, 범위 = 없음, steps = none)

설명 : 주어진 반경이있는 원을 그립니다. ) : 반경은 양수(음수)입니다. 즉, 원을 그리려면 원의 중심이 브러시의 왼쪽(오른쪽)에 있어야 합니다.         범위(라디안)(선택 사항); 정다각형 , 다각형의 변의 수는 계단입니다).

예:

circle(50) # 완전한 원;

circle(50, steps=3) # 삼각형;

circle(120, 180) # 반원

예 :

1, 해바라기

# coding=utf-8
import turtle
import time

# 同时设置pencolor=color1, fillcolor=color2
turtle.color("red", "yellow")

turtle.begin_fill()
for _ in range(50):
turtle.forward(200)
turtle.left(170)
turtle.end_fill()

turtle.mainloop()
로그인 후 복사

2, 오각별

# coding=utf-8
import turtle
import time

turtle.pensize(5)
turtle.pencolor("yellow")
turtle.fillcolor("red")

turtle.begin_fill()
for _ in range(5):
  turtle.forward(200)
  turtle.right(144)
turtle.end_fill()
time.sleep(2)
 
turtle.penup()
turtle.goto(-150,-120)
turtle.color("violet")
turtle.write("Done", font=('Arial', 40, 'normal'))

turtle.mainloop()
로그인 후 복사

3. 시계 프로그램

# coding=utf-8
 
import turtle
from datetime import *
 
# 抬起画笔,向前运动一段距离放下
def Skip(step):
    turtle.penup()
    turtle.forward(step)
    turtle.pendown()
 
def mkHand(name, length):
    # 注册Turtle形状,建立表针Turtle
    turtle.reset()
    Skip(-length * 0.1)
    # 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。
    turtle.begin_poly()
    turtle.forward(length * 1.1)
    # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。
    turtle.end_poly()
    # 返回最后记录的多边形。
    handForm = turtle.get_poly()
    turtle.register_shape(name, handForm)
 
def Init():
    global secHand, minHand, hurHand, printer
    # 重置Turtle指向北
    turtle.mode("logo")
    # 建立三个表针Turtle并初始化
    mkHand("secHand", 135)
    mkHand("minHand", 125)
    mkHand("hurHand", 90)
    secHand = turtle.Turtle()
    secHand.shape("secHand")
    minHand = turtle.Turtle()
    minHand.shape("minHand")
    hurHand = turtle.Turtle()
    hurHand.shape("hurHand")
   
    for hand in secHand, minHand, hurHand:
        hand.shapesize(1, 1, 3)
        hand.speed(0)
   
    # 建立输出文字Turtle
    printer = turtle.Turtle()
    # 隐藏画笔的turtle形状
    printer.hideturtle()
    printer.penup()
    
def SetupClock(radius):
    # 建立表的外框
    turtle.reset()
    turtle.pensize(7)
    for i in range(60):
        Skip(radius)
        if i % 5 == 0:
            turtle.forward(20)
            Skip(-radius - 20)
           
            Skip(radius + 20)
            if i == 0:
                turtle.write(int(12), align="center", font=("Courier", 14, "bold"))
            elif i == 30:
                Skip(25)
                turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
                Skip(-25)
            elif (i == 25 or i == 35):
                Skip(20)
                turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
                Skip(-20)
            else:
                turtle.write(int(i/5), align="center", font=("Courier", 14, "bold"))
            Skip(-radius - 20)
        else:
            turtle.dot(5)
            Skip(-radius)
        turtle.right(6)
        
def Week(t):   
    week = ["星期一", "星期二", "星期三",
            "星期四", "星期五", "星期六", "星期日"]
    return week[t.weekday()]
 
def Date(t):
    y = t.year
    m = t.month
    d = t.day
    return "%s %d%d" % (y, m, d)
 
def Tick():
    # 绘制表针的动态显示
    t = datetime.today()
    second = t.second + t.microsecond * 0.000001
    minute = t.minute + second / 60.0
    hour = t.hour + minute / 60.0
    secHand.setheading(6 * second)
    minHand.setheading(6 * minute)
    hurHand.setheading(30 * hour)
    
    turtle.tracer(False) 
    printer.forward(65)
    printer.write(Week(t), align="center",
                  font=("Courier", 14, "bold"))
    printer.back(130)
    printer.write(Date(t), align="center",
                  font=("Courier", 14, "bold"))
    printer.home()
    turtle.tracer(True)
 
    # 100ms后继续调用tick
    turtle.ontimer(Tick, 100)
 
def main():
    # 打开/关闭龟动画,并为更新图纸设置延迟。
    turtle.tracer(False)
    Init()
    SetupClock(160)
    turtle.tracer(True)
    Tick()
    turtle.mainloop()
 
if __name__ == "__main__":
    main()
로그인 후 복사

더 많은 컴퓨터 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 Turtle.done()의 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿