首页 > 编程语言 >学习python基础二之python基本图形绘制

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

时间:2024-08-21 22:26:43浏览次数:15  
标签:turtle angle 画笔 python fd 海龟 图形 绘制 circle

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()
<iframe allowfullscreen="true" data-mediaembed="csdn" frameborder="0" id="8vkmFUfY-1724244167344" src="https://live.csdn.net/v/embed/419108"></iframe>

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

标签:turtle,angle,画笔,python,fd,海龟,图形,绘制,circle
From: https://blog.csdn.net/jia_ueana/article/details/141402158

相关文章

  • 【python】面向对象之类成员(属性)
    1.属性的定义1.1:属性的定义有两种方式:装饰器即:在方法上应用装饰器静态字段即:在类中定义值为property对象的静态字段1.2:装饰器方式在类的普通方法上应用@property装饰器经典类classGoods:@propertydefprice(self):return"xwl"#######......
  • Python程序设计现代方法1课后习题1Python 开发概述
    Python程序设计现代方法1课后习题1Python开发概述1.整数求和。输入整数n,计算1~n之和。defsum_of_integers(n):returnsum(range(1,n+1))n=int(input("请输入整数n:"))print(f"1~{n}的和为:{sum_of_integers(n)}")2.整数排序。输入三个整数,把这三个数由......
  • Python被远程主机强制关闭后怎么自动重新运行进程
    要实现Python程序在被远程主机强制关闭后能够自动重新运行,我们可以采用几种方法,但最直接且常用的方法之一是结合操作系统级的工具或脚本。在Linux系统中,我们可以使用cron作业或者systemd服务来实现这一功能;在Windows系统中,可以使用任务计划程序。但在这里,为了提供一个跨平台的、更......
  • 【python】面向对象之类成员(字段,方法)
    1.类的成员可以分为三大类:字段、方法和属性注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。2.字段字段包括:普通字段和静态字段,他们在定义和使用中有......
  • 【python】面向对象之继承
    1.什么是继承?通过继承,我们可以从既有的类上衍生出新的类。如果程序的需求为仅修改或删除某项功能,此时不需要将该类的成员数据及成员函数重新写一遍,只需要“继承”原先已定义好的类就可以产生新的类了。继承是指将现有类的属性和行为,经过修改或重写(Override)之后,就可产生出拥有......
  • Python 正则表达式详解 带例题演示
    Python正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和可选的标志......
  • 【学习笔记】 陈强-机器学习-Python-Ch11 决策树(Decision Tree)
    系列文章目录监督学习:参数方法【学习笔记】陈强-机器学习-Python-Ch4线性回归【学习笔记】陈强-机器学习-Python-Ch5逻辑回归【课后题练习】陈强-机器学习-Python-Ch5逻辑回归(SAheart.csv)【学习笔记】陈强-机器学习-Python-Ch6多项逻辑回归【学习笔记及课后......
  • 【python】面向对象之封装
    一:面向对象编程有三大特性:封装、继承、多态二:其中最重要的一个特性就是封装。封装指的就是把数据与功能都整合到一起三:什么是封装?1.数据角度讲,将一些基础数据类型复合成一个自定义类型2.行为角度讲,向类外提供必要的功能,隐藏实现的细节3.设计角度分而治之将一个......
  • Linux系统下CUDA与tensorflow与python的版本对应关系
    LinuxCPUVersionPythonversionCompilerBuildtoolstensorflow-2.16.13.9-3.12Clang17.0.6Bazel6.5.0tensorflow-2.15.03.9-3.11Clang16.0.0Bazel6.1.0tensorflow-2.14.03.9-3.11Clang16.0.0Bazel6.1.0tensorflow-2.13.03.8-3.11Clang16.0.0Bazel5.3.0tensorflow-2.......
  • Python 异常处理:掌握错误控制的艺术
            在编程的世界里,错误和异常是不可避免的。正确地处理它们是编写健壮、可靠软件的关键。Python提供了一套强大的异常处理机制,允许我们捕获和处理程序运行时出现的错误。在本文中,我们将探讨Python中的异常处理,包括try-except块、自定义异常、finally子句以......