今天学习了一下通过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(坐标点与出发点重合),则跳出该循环。
绘制结束,闭合填充。