Python에서 "turtle.done()"의 기능은 프로그램을 일시 중지하고 브러시 그리기를 중지하는 것이지만 사용자가 Python Turtle 그래픽 창을 닫을 때까지 그리기 창은 닫히지 않습니다. 그 목적은 사용자에게 시간을 주는 것입니다. 그래픽을 보려면 그래픽 창이 없으면 프로그램이 완료되는 즉시 그래픽 창이 닫힙니다.
이 튜토리얼의 운영 환경: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!