Loading


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

绘制结束,闭合填充。

posted on 2020-02-10 17:45  一氓  阅读(186)  评论(0编辑  收藏  举报