学习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

    作者:jia_ueana

    物联沃分享整理
    物联沃-IOTWORD物联网 » 学习python基础二之python基本图形绘制

    发表回复