今天学习了一下通过Python画图
绘制太阳花
1.新建sunflower.py的文件,导入绘图模块
import turtle # 导入绘图模块
2.设置画布属性
turtle.screensize(canvwidth=None, canvheight=None, bg=None) # canvwidth:画布的宽度(单位:像素)、canvheight:画布的高度(单位:像素)、bg:背景颜色 turtle.setup(width=0.5, height=0.75, startx=None, starty=None) # width,height:输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例、(startx,starty):这一坐标表示矩形窗口左上角顶点的位置。如果为空,则窗口位于屏幕中心
3.设置画笔属性
turtle.pensize(size) # 设置画笔的大小 turtle.color(color1, color2) # 设置画笔颜色color1和填充色color2,可以是字符串如"green", "red",也可以是RGB 3元组 turtle.speed(speed) # 设置画笔速度为speed
4.提笔、移动和落笔
turtle.penup() # 提笔 turtle.goto(x, y) # 画笔移动到画布的(x,y)坐标点 turtle.pendown() # 落笔
5.绘制线条
turtle.left(angle) # 笔的角度向左转angle turtle.forward(distance) # 向当前画笔方向移动distance像素长度
6.判别当前坐标与任意坐标距离
turtle.distance(x, y=None) # x,y为任意的坐标点(x,y)
7.填充标志
turtle.begin_fill() # 准备开始填充图形 turtle.end_fill() # 填充完成
8.绘图结束调用done()函数保持窗口停留
turtle.done() # 保持窗口停留
实验源码
# -*- coding: utf-8 -*- import turtle as t #准备设置 t.screensize(400, 300) #设置画布大小 t.setup(840,500) #设置主窗口的大小为840*500 t.pensize(2) #设置画笔的大小 t.color(‘red‘,‘yellow‘) #设置画笔颜色和填充颜色(pink) t.speed(10) #设置画笔速度为10 t.penup() #提笔 t.goto(-150,0) #画笔前往坐标(-150,0) t.pendown() #下笔 t.begin_fill() #准备绘制 while True: t.forward(300) #画笔前进300个像素 t.left(170) #画笔左转170度 if t.distance(-150, 0) < 1: #如果当前坐标点距离出发点(150,0)小于1,则跳出循环 break t.end_fill() #依据轮廓填充颜色 #保持窗口停留 t.done()
实验截图
总结:
首先设置画布、画笔的属性,为保持图案居中,将出发点左移。
编写一个While循环,沿着画笔方向画一条长为300像素点的线段(花的直径)。
每画一条线段,画笔角度左转170度。如果坐标点与出发点(-150,0)距离相差小于1(坐标点与出发点重合),则跳出该循环。
绘制结束,闭合填充。
原文:https://www.cnblogs.com/wxy2000/p/12291821.html