学习python基础二之python基本图形绘制

1.课前实例

  1.1 蟒蛇绘制

import turtle as t  #turtle库取别名为t
t.setup(650, 350, 200, 200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):
    t.circle(40, 80)
    t.circle(-40, 80)
t.circle(40, 80 / 2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2 / 3)
t.done()

2024-08-21 20-39-18

演示如上

 1.2 过程分析

  基本流程:调用turtle海龟库->设置画布(主窗体的大小和位置)->提起画笔->移动到画布上的一点->放下画笔->设置画笔的线条粗细于颜色等->改变画笔等画点方向->进行绘制

其涉及到的函数:

  •   turtle.setup(宽,高,指定窗口左上角的x坐标,指定窗口左上角的y坐标)
  •   turtle.penup():用于将画笔抬起,即“提起”画笔,将使画笔停止绘制,并将其移动到新的位置,而不在移动过程中绘制任何线条
  •   turtle.fd(移动的距离),距离单位是像素,向前/后(正数/负数)移动一定的距离,以当前方向和速度移动
  •   turtle.pendown():用于将画笔放下,以便在移动时在屏幕上绘制线条
  •   turtle.pensize():设置线条的粗细
  •   turtle.pencolor(color) :color为颜色字符串或者r,g,b值
  •   turtle.seth(angle):用于改变海龟的朝向,它接受一个参数,表示要设置的角度。参数可以是0到360之间的任意值,其中0表示正右方,90表示正上方,180表示正左方,270表示正下方
  •   循环语句:按照一定次数循环执行一组语句 <变量>表示每次循环的次数,0到<次数>-1
  •           for <变量>  in  range(<次数>):
  •             <被循环执行的语句>
  •   range()函数:产生循环计数序列   range(N)  产生0到N-1的整数序列,共N个
  •                                  range(N,M)  产生N到M-1的整数序列,共N-M个
  •   turtle.circle(圆半径,弧形角度,圆弧的步数):圆半径为正值圆心在画笔的左侧,圆半径为正值圆心在画笔的右侧,当无该弧形角度参数或参数为None时,绘制整个圆形相当于默认取值360,圆弧的步数,默认值为 360。步数越多,圆弧越平滑。一般不用。
  •   turtle.done():用于保持绘制窗口的显示,直到用户手动关闭窗口或按下键盘上的任意键

 1.3 举一反三

通过改变程序参数:

        Python蟒蛇的颜色:黑色、白色、七彩色...(改变pencolor函数的值)

        Python蟒蛇的长度:1节、3节、10节...

        Python蟒蛇的方向:向左走、斜着走...

进而扩展:

        圆形绘制、五角星绘制、国旗绘制、机器猫绘制

绘制随机彩色蟒蛇:加一个随机生成函数,来随机生成RGB颜色

import random  # 导入随机数模块实现随机颜色的功能
import turtle
turtle.colormode(255)  # 把颜色表示法取值的模式从[0-1]之间改成[0-255]
#定义一个生成颜色的模块
def colorchoose():
    a, b, c = random.randrange(0, 256), random.randrange(0, 256), random.randrange(0, 256)
    color = (a, b, c)
    return color   #返回值是一个rgb颜色
turtle.setup(650, 350, 200, 200)
turtle.pu()
turtle.fd(-250)
turtle.pendown()
turtle.width(25)
turtle.seth(-40)
for i in range(4):
    turtle.pencolor(colorchoose())  # 调用模块 随机生成rgb颜色
    turtle.circle(40, 80)
    turtle.pencolor(colorchoose())  # 调用模块 随机生成rgb颜色
    turtle.circle(-40, 80)
turtle.circle(40, 80 / 2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2 / 3)
turtle.done()

2.  turtle库基本介绍及用法

turtle(海龟)库是turtle绘图体系的python实现

python计算生态=标准库+第三方库

  •   标准库:随解释器直接安装到操作系统中的系统中的功能模块
  •   第三方库:需要经过安装才能使用的功能模块
  •   库Library,包Package,模块Module,统称为模块

   2.1 turtle绘图窗口布局

          turtle的绘图窗口——turtle的一个画布空间,最小的单位是像素

  设置窗体大小及位置turtle.setup(width, height, startx, starty),后两个可选,setup非必须

  

如如下所示

2.2 turtle空间坐标体系

  •   将画笔移动到指定的坐标位置(移动时有痕迹):turtle.goto(x, y),其中x和y是要移动到的坐标位置,可以是整数或浮点数,x,y为绝对坐标

如下程序:

import turtle

turtle.goto(100, 100)
turtle.goto(100, -100)
turtle.goto(-100, -100)
turtle.goto(-100, 100)
turtle.goto(-0, 0)

与其相关的还有:

turtle.penup(): 抬起画笔,移动时无痕迹。

turtle.pendown(): 落下画笔,移动时有痕迹。

turtle.pensize(width): 设置画笔宽度。

turtle.pencolor(color): 设置画笔颜色,可以是颜色字符串或RGB值。

  • 海龟坐标

以海龟的头朝向为前进方向

涉及到的函数:

turtle.fd(x)向海龟前进方向前进x像素

turtle.bk(x)向海龟后退方向后退先x像素

turtle.circle(r, angle):)以左侧距离海龟距离为r的一点为圆心做曲线运动,运动弧度为angle,例:Turtle.circle(20, 90),是画四分之一个圆

     2.3 turtle角度坐标体系

   1)  设置‌海龟的朝向角度turtle.seth(角度),角度在0到360之间,只改变方向,不前进,绝对角度

  如下所示改变海龟朝向角度

 2)海龟角度

turtle.left(angle):让小海龟向左转动一个角度angle

turtle.right(angle):让小海龟向右转动一个角度angle

如下程序:

from turtle import *
left(45)
fd(150)
right(135)
fd(300)
left(135)
fd(150)

2.4 RGB色彩体系

  RGB色彩模式:由三种颜色构成的万物色,turtle.colormode(mode)默认是小数形式,可以切换为整数值,1.0:RGB小数值模式,255:RGB整数值模式

  RGB指红蓝绿三个通道的颜色组合,覆盖视力所能感知的所有颜色,RGB每色取值范围0-255整数或0-1小数

  常用的RGB色彩如下表

3. turtle程序语法元素分析

3.1 库引用和import

库引用:扩充python程序功能的方式

几种库引用方法:

      ①import 库名:导入整个库文件

import 库名[as 别名]:导入整个库文件,并指定库别名

<库名/别名>.<函数名>(<函数参数>)

      ②from 库名 import [函数名]:导入指定文件的函数

from 库名 import *:导入指定文件所有函数

<函数名>.(<函数参数>)

      ③from 库名 import函数名[as 函数别名]:导入指定文件的函数,并指定函数别名

     3.2  turtle画笔控制函数

  • 画笔操作后一直有效,一般成对出现

      turtle.penup() 别名 turtle.pu)

      抬起画笔,海龟在飞行

      turtle.pendown() 别名 t turtle.pd()

      落下画笔,海龟在爬行

  • 画笔设置后一直有效,直至下次重新设置

        turtle.pensize(width) 别名 turtle.width(width)

        画笔宽度,海龟的腰围

         turtle.pencolor(color) color为颜色字符串或r, g, b值

        画笔颜色,海龟在涂装

         pencolor(color)的color可以有三种形式

                -颜色字符串 :turtle.pencolor("purple")

                - RGB的小数值:turtle.pencolor(0.63, 0.13, 0.94)

                - RGB的元组值:turtle.pencolor((0.63, 0.13, 0.94))

      3.3 turtle运动控制函数

  • 控制海龟行进:走直线 & 走曲线

直线:turtle.forward(d))  别名 turtle.fd(d)  向前行进,海龟走直线

        d:行进距离,可以为负数

        曲线:turtle.circle(r, extent=None)根据半径r绘制extent角度的弧形

        r:默认圆心在海龟左侧~距离的位置- extent:绘制角度,默认是360度整圆

  • 画笔设置后一直有效,直至下次重新设置

        turtle.forward(d)  别名 turtle.fd(d)   向前行进,海龟走直线

d:行进距离,可以为负数

       3.4 turtle方向控制函数

  • 控制海龟面对方向:绝对角度& 海龟角度

        turtle.setheading(angle) 别名 turtle.seth(angle)   改变行进方向,海龟走角度

angle:行进方向的绝对角度

  • 控制海龟面对方向:绝对角度&海龟角度

  turtle.left(angle) 海龟向左转

  turtle.right(angle) 海龟向右转

  angle:在海龟当前行进方向上旋转的角度

详细其他函数见其他作者帖子:https://huaweicloud.csdn.net/63806ca0dacf622b8df87e66.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值