当前位置:   article > 正文

学习Python中turtle模块的基本用法(2:基本绘图函数测试)_查 turtle.write() 可用字体

查 turtle.write() 可用字体

  个人感觉turtle模块中的绘图函数是按人手拿着画笔一笔一画地画图的思路定义的,这与C#中的GDI+函数、html5中canvas的绘图函数及Tkinter中Canvas的绘图函数的定义思路存在差异,但也能完成后面绝大部分的绘图功能(目前看到的turtle文章及帮助文档里面还没有看到类似drawimage的函数)。
  本文介绍turtle模块中最常用的绘图函数,并结合参考文献测试绘图函数的使用方式。

序号函数名说明
1turtle.bgcolor设置窗体背景色
2turtle.screensize设置窗体大小
3turtle.penup提笔,笔抬起来之后后续就不会再绘图,turtle.pu、turtle.up与本函数作用相同
4turtle.pendown落笔,笔落后后续就开始绘图,turtle.pd、turtle.down与本函数作用相同
5turtle.pensize设置线宽,turtle.width与本函数作用相同
6turtle.pencolor设置线条颜色
7turtle.fillcolor设置区域填充颜色
8turtle.begin_fill在绘制要填充的形状之前调用
9turtle.end_fill以填充颜色填充前一begin_fill之后绘制的形状。自相交多边形或多个形状间的重叠区域是否填充取决于操作系统的图形引擎、重叠的类型以及重叠的层数
10turtle.write绘制文本,可以指定对齐方式及字体信息,详见参考文献1
11turtle.hideturtle隐藏绘图箭头或海龟(本人电脑上显示的是箭头),turtle.ht与本函数作用相同
12turtle.showturtle显示绘图箭头或海龟 ,turtle.st与本函数作用相同
13turtle.forward向前移动指定距离,penup时是移动,pendown时则是绘图,turtle.fd与本函数作用相同
14turtle.backward向后移动指定距离,penup时是移动,pendown时则是绘图,turtle.back、turtle.bk与本函数作用相同
15turtle.right向右侧转指定角度,之前调用过degrees函数则输入参数为度数,之前调用过radians则输入参数为弧度,turtle.rt与本函数作用相同
16turtle.left向左侧转指定角度,之前调用过degrees函数则输入参数为度数,之前调用过radians则输入参数为弧度,turtle.lt与本函数作用相同
17turtle.goto移动到指定坐标处,penup时是移动,pendown时则是绘图,turtle.setpos、turtle.setposition与本函数作用相同
18turtle.speed设置海龟移动的速度为 0…10 表示的整型数值,速度值从 1 到 10,画线和海龟转向的动画效果逐级加快。
19turtle.position获取海龟当前坐标,turtle.pos与本函数作用相同
20turtle.circle绘制圆形,圆心在海龟左边 radius 个单位

  基于上述函数,结合参考文献进行绘图功能测试。首先测试绘制五星红旗,原始代码来自参考文献2,其绘制了红旗和旗杆,本文测试时去掉了绘制旗杆的代码,并对绘制红旗的代码进行了优化,优化后的代码及运行效果如下所示:

import turtle

def DawStar(startX,startY,lens):
    turtle.penup()
    turtle.goto(startX,startY)
    turtle.pendown()
    turtle.fillcolor("yellow")
    turtle.pencolor("yellow")
    turtle.begin_fill()   
          
    for i in range(1,6):
        turtle.forward(lens) 
        turtle.right(144)      
          
    turtle.end_fill()

turtle.pencolor("red")
turtle.fillcolor("red") 
turtle.begin_fill()         
turtle.penup()
turtle.goto(-60,0)
turtle.pendown()
turtle.goto(-60,160)
turtle.goto(240,160)
turtle.goto(240,0)
turtle.goto(-60,0)
turtle.end_fill()

DawStar(-50,110,45)
DawStar(-10,145,20)
DawStar(10,120,20)
DawStar(10,95,20)
DawStar(-10,70,20)
turtle.hideturtle()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

在这里插入图片描述
  第二个测试程序绘制的是从参考文献3中找到的简单的盘类零件主视图(原始图如下图所示),主要是由多个圆组成,绘图代码及运行效果如下所示(暂时不清楚虚线怎么画,绘图时全都画成了实线):
在这里插入图片描述

import turtle

def DrawCircle(startX,startY,width,radius):
    turtle.penup()
    turtle.goto(startX,startY)
    turtle.pensize(width)
    turtle.pendown()
    turtle.right(90)
    turtle.circle(radius)
    turtle.left(90)

turtle.pensize(1)
turtle.penup()
turtle.backward(130)
turtle.pendown()
turtle.forward(260)
turtle.penup()
turtle.goto(0,130)
turtle.pendown()
turtle.goto(0,-130)
turtle.penup()
turtle.goto(0,0)

DrawCircle(-50,0,3,50)
DrawCircle(-60,0,3,60)
DrawCircle(-70,0,3,70)
DrawCircle(-90,0,1,90)
DrawCircle(-110,0,3,110)

DrawCircle(-100,0,3,10)
DrawCircle(-10,-90,3,10)
DrawCircle(80,0,3,10)
DrawCircle(-10,90,3,10)

turtle.hideturtle()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

在这里插入图片描述

参考文献:
[1]https://docs.python.org/zh-cn/3/library/turtle.html
[2]https://blog.csdn.net/A15622180434/article/details/122700075
[3]https://max.book118.com/html/2016/0803/50160473.shtm

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/132817
推荐阅读
相关标签
  

闽ICP备14008679号