Python_基本图形绘制

文章介绍了Python的turtle库,它是入门级图形绘制工具,用于创建2D图形。turtle库提供了如goto、fd、bk等函数来控制海龟在坐标系中的移动,以及pencolor、width等函数来设置画笔颜色和宽度。此外,文章还展示了如何绘制正方形、六边形、叠边形和风轮等图形,以及库的导入方式和可能的冲突问题。
摘要由CSDN通过智能技术生成

引入绘图库turtle(海龟库)

#库的引入方式有三种

#import <库名>
import turtle #引入海龟库
turtle.goto(20) #使用turtle库中的goto函数
#缺点:代码冗余

#from <库名> import <函数名>
from turtle import * #星号代表全部
from turtle import goto
goto.(20) #不用重复标明函数所属库
#缺点:可能导致引用的函数名与自定义的函数名冲突

#import <库名> as <别名>(给库起个小名)
import turtle as t
t.goto(20)
turtle海龟库是turtle绘图体系的Python实现,是Python标准库之一,属于入门级图形绘制函数库。
Python计算生态=标准库+第三方库。
标准库:随解释器直接安装到操作系统中的功能模块。
第三方库:需要安装才能使用的功能模块。
库Library、包Package、模块Module,统称模块。

turtle窗体布局

turtle.setup(width, height, startx, starty) #相对于显示器左上角(0, 0)

默认位置正中心,单位都是像素。

绘制完成后窗体默认自动退出,done函数控制手动关闭窗体。

不过在IDLA上我没加这一行试了试,发现并没有自动退出。

turtle.done()

turtle空间坐标体系

绝对坐标

以窗体中心为原点(0, 0)的平面直角坐标系。

turtle.goto(x, y) #走直线到点(x, y)

海龟坐标

以海龟目前位置为原点且目前朝向为前进方向(后方为后退方向,左右两侧分别为左侧方向、右侧方向)。

turtle.fd(d) #forward前进d个像素
turtle.bk(d) #backward后退d个像素
turtle.circle(r,angle) #圆心在左侧距离半径r的位置处,angle为绘制角度(默认None即360度)

turtle角度坐标体系

绝对角度

固定在窗体上的度数,逆时针为正。

turtle.seth(angle) #只改变行进方向

海龟角度

turtle.left(angle) #向左转angle,基于当前方向
turtle.right(angle) #向右转angle

RGB色彩模式

默认0-1小数表示。

turtle.colormode(mode) #更改色彩表示模式
turtle.colormode(1.0)
turtle.colormode(255)

turtle画笔控制函数

画笔初始默认位置在窗体中心。

#画笔抬起
turtle.penup()
turtle.pu()
turtle.up()

#画笔落下
turtle.pendown()
turtle.pd()

#画笔宽度
turtle.pensize(width)
turtle.width(width)

#画笔颜色
turtle.pencolor(color) #color有三种写法
turtle.pencolor("purple") #小写+引号
turtle.pencolor(0.63,0.13,0.94)
turtle.pencolor((0.63,0.13,0.94))

turtle运动控制函数

这部分函数在前面基本上提到过。

#绝对坐标行走
turtle.goto(x, y) #走直线到(x, y)

#海龟坐标行走
turtle.fd(d) #forward前进d个像素
turtle.bk(d) #backward后退d个像素,注意不是扭头前进,而是后退
turtle.circle(r,angle) #圆心在左侧距离半径r的位置处,angle为绘制角度(默认None即360度)

turtle方向控制函数

只改变海龟头朝向,这部分函数在前面基本上提到过。

#绝对方向
turtle.setheading(angle)
turtle.seth(angle)

#海龟方向
turtle.left(angle) #向左转angle,基于当前方向
turtle.right(angle) #向右转angle

特别注意

所有负号表示反方向。


练习

正方形

import turtle as t
t.setup(300, 300)
t.pu()
t.bk(50)
t.pd()
for i in range(4):
    t.fd(100)
    t.left(90)

演示

六边形

import turtle as t
t.setup(300, 300)
t.pu()
t.bk(100)
t.seth(-60)
t.pd()
for i in range(6):
    t.fd(100)
    t.left(60)

叠边形

设内角为100度,2圈。

import turtle as t
t.setup(300, 300)
t.pu()
t.goto(-50, -50)
t.pd()
for i in range(9): #叠边形外角和是360的正整数倍,2*360/(180-100)=9
    t.fd(100)
    t.left(80)

风轮

每个风轮内角为45度,风轮边长150像素。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

import turtle as t
t.setup(400, 400)
for i in range(4):
    t.seth(i * 90)
    t.fd(150)
    t.right(90)
    t.circle(-150, 45)
    t.goto(0, 0)

跟学课程:慕课MOOC《Python语言程序设计》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值