turtle库语法元素分析

Python的turtle库是一个直观有趣的图形绘制函数库。turtle(海龟)图形绘制的概念诞生于1969年,并成功运用于LOGO编程语言。由于turtle图形绘制概念十分值观且流行,Python接受了这个概念,形成了一个Python的turtle库,并成为标准库之一。

一、绘图坐标体系

turtle库绘制的图形有一个基本的框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形。对于小海龟来说,有“前进“、”后退”、“旋转”等爬行行为,对坐标系的探索也通过“前进方向”、“后退方向”、“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。刚开始绘制时,小海龟位于画布正中央,此处坐标为(0,0),行进方向为水平右方。例如,用如下代码绘制如图所示的坐标体系。

turtle.setup(650,350,200,200)

该代码中使用了turtle.setup()函数,该函数使用方法如下:

turtle.setup(width,height,startx,starty)

作用:设置主窗体的大小和位置。

参数如下:

width:窗口宽度,如果值是整数,表示像素值;如果值是小数,表示窗口宽度与屏幕的比例。

height:窗口高度,如果值是整数,表示像素值;如果值是小数,表示窗口高度与屏幕的比例。

startx:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央。

starty:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央。

二、画笔控制函数

1、turtle.penup()和turtle.pendown()函数

        turtle中的画笔(即小海龟)可以通过一组函数来控制,turtle.penup()和turtle.pendown()是一组,他们分别表示抬起画笔和落下画笔,函数定义如下:

turtle.penup()

别名turtle.pu(),turtle.up()

作用:抬起画笔,之后移动画笔不会绘制图形。

参数:无。

turtle.pendown()

别名turtle.pd(),turtle.down()

作用:落下画笔,之后移动画笔将会绘制图形。

参数:无。

2、turtle.pensize()函数

turtle.pensize()函数用来设置画笔尺寸,函数定义如下:

turtle.pensize(width)

别名turtle.width()

作用:设置画笔宽度,当无参数输入时返回当前画笔宽度。

参数如下:

width:设置的画笔线条宽度,如果值是None或者为空时,则函数返回当前画笔宽度。

3、turtle.pencolor()函数

turtle.pencolor()函数给画笔设置颜色。函数定义如下:

turtle.pencolor(colorstring)或turtle.pencolor((r,g,b))

作用:设置画笔颜色,当无参数输入时返回当前画笔颜色。

参数如下:

colorstring:表示颜色的字符串,例如,“purple”、“red”、“blue”等。

(r,g,b):颜色对于的RGB数值,例如(51,204,140)。

        很多RGB颜色都有固定的英文名字,这些英文名字可以作为colorstring输入到turtle.pencolor()函数中,也可以采用(r,g,b)形式直接输入颜色值。下面是几种典型的RGB颜色:

英文名称 RGB 十六进制 中文名称
white 255 255 255 #FFFFFF 白色
black 0 0 0 #000000 黑色
grey 190 190 190 #BEBEBE 灰色
darkgreen 0 100 0 #006400 深绿色
gold 255 215 0 #FFD700 金色
violet 238 130 238 #EE82EE 紫罗兰色
purple 160 32 240 #A020F0 紫色

三、形状绘制函数

1、turtle.fd()函数

        turtle通过一组函数控制画笔的行进动作,进而绘制形状。turtle.fd()函数最常用来控制画笔向当前行进方向前进一个距离,函数定义如下:

turtle.fd(distance)

别名

turtle.forwardd(distance)

作用:向小海龟当前行进方向前进一个distance距离。

参数如下:

distance:行进距离的像素值,当值为负数时,表示向相反方向行进。

Codezeilen 5, 14 und 16 in Beispiel 2.1:
 

#e2.1DrawPython.py
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40 * 2/3)

Bedeutet jeweils: eine Strecke in die aktuelle Fahrtrichtung oder in die entgegengesetzte Richtung der Bürste fahren und dann eine gerade Linie ziehen. Die fünfte Codezeile arbeitet mit der Lift-Up-Pinsel-Funktion in Zeile 4 zusammen, sodass sie den Pinsel, anstatt eine Linie zu zeichnen, an eine bestimmte Position bewegt.

2. Die Funktion turtle.seth()

Die Funktion turtle.seth() wird verwendet, um die Zeichenrichtung des Pinsels zu ändern. Die Funktion ist wie folgt definiert:

turtle.seth(to_angle)

alias

turtle.setheading(to_angle)

Funktion: Setze die aktuelle Bewegungsrichtung der kleinen Schildkröte auf to_angle, was der absolute Richtungswinkelwert ist.

Die Parameter sind wie folgt:

to_angle: Ganzzahlwert des Winkels.

Das Bild zeigt das Winkelkoordinatensystem der Turtle-Bibliothek, das von Funktionen wie turtle.seth() verwendet wird.

        Es sollte beachtet werden, dass das Winkelkoordinatensystem der Schildkrötenbibliothek die Ostrichtung als absolute 0 Grad annimmt, was auch die anfängliche Kriechrichtung der kleinen Schildkröte ist, und die Westrichtung absolut 180 Grad beträgt. Die aktuelle Richtung ist irrelevant. Daher können Sie dieses absolute Koordinatensystem verwenden, um die Richtung der kleinen Schildkröte jederzeit zu ändern.
        Zeile 9 im Beispielcode 2.1 setzt die Vorwärtsrichtung der kleinen Schildkröte auf -40 Grad, was 320 Grad entspricht, und dann bewegt sich die kleine Schildkröte in diese Richtung vorwärts.


3. Die for-Schleife-Anweisung und die Funktion turtle.circle()

for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40, 80/2)
turtle.circle(16,180)


        由于存在缩进,实例代码 2.1 中第10、11、12行是一个由保留字 for 引导的整体,这是另一种循环结构,称为“遍历循环”。for 语向的循环格式如下:
for i in range(<循环次数>):
<语句块 1>
        实例代码2.1 中第10行的for循环表示第11、12行代码连续执行 4次。
turtle.circle()函数用来绘制一个弧形,函数定义如下:
turtle.circle (radius, extent=None)
作用:根据半径radius 绘制extent 角度的弧形。

参数如下。
radius:弧形半径,当值为正数时,半径在小海龟左侧,当值为负数时,半径在小海龟右侧。
extent: 绘制弧形的角度,当不设置参数或参数设置为 None 时,绘制整个圆形。
实例代码 2.1 中各西数包括角度值、半径值等参数是根据绘制内容的样式调整确定的。

Supongo que te gusta

Origin blog.csdn.net/fan18317517352/article/details/122887965
Recomendado
Clasificación