欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

练习2: Python基本图形绘制 (第2周)

程序员文章站 2022-07-01 17:18:46
...

练习2: Python基本图形绘制 (第2周)


这是python123官网上联合MOOC的Python程序设计(第10期)答案

turtle库语法总结

Python的 turtleturtle 库是一个直观有趣的图形绘制函数库,turtle 是海龟的意思。刚开始绘制时,小海龟位于画布正*,此处坐标为(0,0),行进方向为水平有方。

函数 作用 参数
turtle.setup(width,height,startx,starty) 设置主窗口大小和位置 width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例。
(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为None,则窗口位于屏幕中心。
turtle.penup() 抬起画笔,之后移动画笔不绘制形状
turtle.pendown() 落下画笔,之后移动画笔将绘制形状
turtle.pensize(width) 设置画笔宽度 width:设置的画笔线条宽度,如果为None或者为空,返回当前画笔宽度
turtle.pencolor() 设置画笔颜色 1、pencolor(colorsting)设置颜色,例如 turtle.pencolor(“red”) 设置红色
2、pencolor((r,g,b))设置颜色,例如 turtle.pencolor((160,32,240))设置紫色
3、无参数输入时返回当前画笔颜色
turtle.fd(distance) 向小海龟当前行进方向前进 distance 距离 distance:行进距离的像素值,值为负数时表示向相反方向前进
turtle.seth(to_angle) 改变画笔绘制方向 设置小海龟当前行进方向为 to_angle,该角度是绝对方向角度值
turtle.circle(radius,extent) 绘制一个弧形 radius:弧形半径。值为正数时,半径在小海龟左侧,值为负数时在右侧
exten:绘制弧形的角度,如果为None或者不设参数,绘制整个圆形
turtle.goto(x,y) 移动画笔位置 将画笔移动到坐标为x,y的位置
如果画笔没有penup的话是会绘制图形的
turtle.left(degree) 改变画笔绘制方向 逆时针移动degree°
turtle.right(degree) 改变画笔绘制方向 顺时针移动degree°
turtle.speed(speed) 改变画笔移动速度 speed:设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大就越快。

以上的是对 turtleturtle 库中常用函数的总结,如果想深入了解学习 turtleturtle 库,请参考Python绘图Turtle库详解

Python蟒蛇绘制

练习2: Python基本图形绘制 (第2周)
教材例题,结合刚才的库函数总结,仔细揣摩即可

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

turtle正方形绘制

练习2: Python基本图形绘制 (第2周)

import turtle as t
t.pensize(2)
for i in range(4):
	t.fd(150)
	t.left(90)

turtle六边形绘制

练习2: Python基本图形绘制 (第2周)

import turtle as t
t.pensize(2)
for i in range(6):
	t.fd(150)
	t.left(60)

turtle叠边行绘制

练习2: Python基本图形绘制 (第2周)
认真观察图形,我们发现,这个叠边行其实是一笔画成的,其中不断变换方向而已。围绕着360度的图形画了两遍,一共是720度,叠边行一共9笔,则每次变化了720/9=80度。

import turtle as t
t.pensize(2)
for i in range(9):
	t.fd(150)
	t.left(80)

turtle风车绘制

练习2: Python基本图形绘制 (第2周)
风车是每次画了弧形之后又返回原点,变换了四次方向。

import turtle as t
t.pensize(2)
for i in range(4):
	t.seth(90*i)
	t.fd(150)
	t.right(90)
	t.circle(-150,45)
	t.goto(0,0)