前言
对于大部分学习Python的同学来说,利用turtle库绘制图像是必经的一个学习过程,本文介绍了Python的turtle库中部分函数在绘制螺旋正方形项目中的应用,简单却充满趣味,希望能勾起同学们的学习兴趣!
以下是本篇文章正文内容,下面案例可供参考
一、简单的螺旋正方形
从内向外画效果图:
代码:
#导入turtle库
from turtle import * #用from ... import ... 导入库,后调用其函数只需写函数名
setup(500,500,1000,250)
seth(0)
for i in range(0, 400, 5):
fd(i)
left(90)
fd(i)
left(90)
hideturtle() #隐藏画笔
注:(turtle.)setup(width=500, height=500, startx=1000, starty=250)
width为画布显示方框的宽,height为画布显示方框的长。画布显示方框以电脑屏幕左上角为原点,以右为x轴、以下为y轴,startx对应x轴长度,starty对应y轴长度,(startx, starty)为显示方框在屏幕对应坐标。
从外向内画效果图:
代码:
#导入turtle库
from turtle import * #用from ... import ... 导入库,后调用其函数只需写函数名
setup(500,500,1000,250)
seth(0)
for i in range(400, 0, -5):
fd(i)
left(90)
fd(i)
left(90)
hideturtle() #隐藏画笔
二者不同原因:range()函数的反向应用
二、花样螺旋正方形
1.绘制正方形
效果图:
代码:
import turtle as t
import math
def draw1(L):
for i in range(4):
t.penup()
t.left(45)
t.fd(L)
t.pendown()
t.left(135)
t.fd(math.sqrt(2)*L)
t.left(135)
t.penup()
t.fd(L)
t.pendown()
t.left(135)
draw1(100)
注:依次画四个等腰直角三角形即可构成正方形,只需用penup()和pendown()将三角形的腰隐藏起来即可
2.花样螺旋正方形
主代码:
def main():
t.tracer(0)
t.bgcolor('white')
draw2(300, 2, 13)
t.hideturtle()
t.update()
main()
未上色效果图:
代码:
def draw2(L, length, N): #L表示边长,length表示每次循环边长减小的长度,N表示旋转角度
for i in range(L, 0, -length):
t.seth(N)
draw1(i)
N += 13
上色效果图(1):
代码:
def draw2(L, length, N): #L表示边长,length表示每次循环边长减小的长度,N表示旋转角度
t.fillcolor('black')
t.begin_fill()
for i in range(L, 0, -length):
t.pencolor('red')
t.seth(N)
draw1(i)
N += 13
t.end_fill()
上色效果图(2):
代码:
def draw2(L, length, N): #L表示边长,length表示每次循环边长减小的长度,N表示旋转角度
t.fillcolor('black')
for i in range(L, 0, -length):
t.pencolor('red')
t.begin_fill()
t.seth(N)
draw1(i)
N += 13
t.end_fill()
上色效果图(3):
代码:
def draw2(L, length, N): #L表示边长,length表示每次循环边长减小的长度,N表示旋转角度
colors = ["blue","yellow","red","pink",'purple','orange','green','black'] #定义颜色(8种颜色)
t.fillcolor('black')
for i in range(L, 0, -length):
t.pencolor(colors[i % 7]) #因为背景是黑色,就没用黑色
t.begin_fill()
t.seth(N)
draw1(i)
N += 13
t.end_fill()
总结
善于从不同角度、不同方向、不同颜色去构想图形的样子,散发思维去尝试,在学习中娱乐,在娱乐中激发学习的乐趣,从而乐学不倦!
版权声明:本文为weixin_44879620原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。