码迷,mamicode.com
首页 > 其他好文 > 详细

turtle的简单绘图

时间:2020-03-22 17:46:33      阅读:782      评论:0      收藏:0      [点我收藏+]

标签:中心   课程   参数   mod   默认值   像素   back   引入   绘制图形   

       接触python,就发现python是一门很有趣的课程。往往只需要利用几行简单的代码,就能绘制出简单漂亮的图案。毫不夸张的说,掌握好turtle库,就能绘制一整片蓝图。有时候,当我们遇到一些对称图形的时候,利用 for   in  循环语句,也能达到很好的效果。我们先了解一些关于turtle库的基本函数。

turtle库的基本函数:

一、绘图窗口设置命令

①turtle.setup(width,height,starty,starty)  注:(starty,starty)指的是绘图窗体左上角位置的坐标,这两个参数可选,若为空,则窗口位于屏幕中心

turtle.setup(100,100)
turtle.setup800, 800, 100,100)

②turtle.screensize(canvwidth=None, canvheight=None, bg=None)     参数分别为画布的宽(单位像素), 高, 背景颜色  注:若括号为空,则默认值为(400,300)

turtle.screensize(400, 300, "red")

二、坐标体系

(1)空间坐标体系

技术图片

①turtle.goto(x,y):直接跳转到(x,y)点,以绘图窗口中心为原点,向右为x轴,向上为y轴。

②turtle.fd(d)、turtle.forward(d):以当前方向,往前行进d像素。

③turtle.bk(d)、turtle.backword(d):保持当前方向不变,往后退行d像素。

④turtle.circle(r,angle):从当前位置以r为半径圆的angle角度旋转。

(2)角度坐标体系

技术图片

 

①turtle.setheading(angle)也可简写为turtle.seth()    表示海龟改变行进角度,但不运动。绘图窗体以x轴为起点,将方向偏转为angle度,逆时针为正。

②turtle.left(angle):在当前行进方向的基础上,向左旋转angle度。

③turtle.right(angle):在当前行进方向的基础上,向右旋转angle度。

(3)画笔控制命令

①turtle.penup()  表示    抬笔

    turtle.pendown()  表示   落笔

②turtle.pensize(x)  表示画笔宽度

③turtle.pencolor(颜色名red/RGB三元组/颜色编码)  表示画笔颜色  e.g.turtle.pencolor("red")  画笔为红色

   turtle.colormode(mode)

④turtle.fillcolor(colorstring):绘制图形的填充颜色

    turtle.begin_fill():开始填充

    turtle.end_fill():结束填充

turtle.done()  写在末尾,程序运行完不会退出

注意:写代码之前要引入turtle库。

  import turtle 

 

图形绘制:一箭穿心

一、绘制一个爱心

import turtle
turtle.color(‘red‘, ‘pink‘)
turtle.pensize(2)
turtle.pendown()
turtle.seth(150)
turtle.begin_fill()
turtle.fd(40)
turtle.circle(40 * -3.745, 45)
turtle.circle(40 * -1.431, 165)
turtle.left(120)
turtle.circle(40 * -1.431, 165)
turtle.circle(40 * -3.745, 45)
turtle.fd(40)
turtle.end_fill()

 技术图片

效果如图

 二、绘制箭

turtle.pensize(5)
turtle.pencolor("black")
turtle.seth(100)
turtle.penup()
turtle.fd(90)
turtle.pendown()
turtle.seth(75)
turtle.fd(20)
turtle.seth(-155)
turtle.fd(20)
turtle.seth(25)
turtle.penup()
turtle.fd(20)
turtle.pendown()
turtle.seth(-130)
turtle.fd(120)
turtle.fillcolor("black")
turtle.begin_fill()
turtle.seth(180)
turtle.fd(10)
turtle.seth(50)
turtle.fd(15)
turtle.seth(0)
turtle.fd(10)
turtle.seth(-80)
turtle.fd(10)
turtle.seth(-130)
turtle.fd(15)
turtle.seth(100)
turtle.fd(10)
turtle.end_fill()

 三、将两者组合起来

import turtle
turtle.color(‘red‘, ‘pink‘)
turtle.pensize(2)
turtle.pendown()
turtle.seth(150)
turtle.begin_fill()
turtle.fd(40)
turtle.circle(40 * -3.745, 45)
turtle.circle(40 * -1.431, 165)
turtle.left(120)
turtle.circle(40 * -1.431, 165)
turtle.circle(40 * -3.745, 45)
turtle.fd(40)
turtle.end_fill()

turtle.pensize(5)
turtle.pencolor("black")
turtle.seth(100)
turtle.penup()
turtle.fd(90)
turtle.pendown()
turtle.seth(75)
turtle.fd(20)
turtle.seth(-155)
turtle.fd(20)
turtle.seth(25)
turtle.penup()
turtle.fd(20)
turtle.pendown()
turtle.seth(-130)
turtle.fd(120)
turtle.fillcolor("black")
turtle.begin_fill()
turtle.seth(180)
turtle.fd(10)
turtle.seth(50)
turtle.fd(15)
turtle.seth(0)
turtle.fd(10)
turtle.seth(-80)
turtle.fd(10)
turtle.seth(-130)
turtle.fd(15)
turtle.seth(100)
turtle.fd(10)
turtle.end_fill()

  技术图片

效果如图

 

 

掌握了turtle库之后,我们可以根据自己的想法,画出更复杂,更漂亮的图画。

 

turtle的简单绘图

标签:中心   课程   参数   mod   默认值   像素   back   引入   绘制图形   

原文地址:https://www.cnblogs.com/deng11/p/12457964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!