基本图形绘制(第二周)
程序员文章站
2022-07-01 17:09:59
...
2.Python基本图形绘制
2.1 深入理解python语言
python
-
学习内容
:编程逻辑 第三方库 -
语言本质
:理解问题求解 -
解决问题
:各类问题
2.1.1 Python特点与优势
C代码量的10%
- 强制可读性
- 较少的底层语法元素
- 多钟编程方式
- 支持中文字符
2.2 实例2:Python蟒蛇绘制
#PythonDraw.py
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,100)
turtle.fd(40*2/3)
turtle.done()
2.3 模块1:turtle库的使用
2.3.1turtle库概述
turtle(海龟)库是turtle绘图体系的Python实现
- turtle绘图体系:1969年诞生,主要用于程序设计入门
- Python语言的
标准库
之一
2.3.2标准库
Python计算生态=标准库+第三方库
3. 标准库:随解释器直接安装到操作系统中的功能模块
4. 第三方库:需要经过安装才能使用的功能模块
5. 库Library,包PacKage,模块Module,统称模块
2.3.3 turtle的绘图窗体
turtle.setup(width,height,startx,starty)
width:表示长度
height:表示宽度
- setup()设置窗体大小和位置
- 4个参数中后两个可选(若后两个设置为0,则位于电脑最左上角)
- setup函数不是必须的
- 若没有设置后两项,则默认居中
2.3.4 turtle空间坐标体系
绝对坐标:窗口的正中心(0,0)
import turtle
turtle.goto(100,100)
turtle.goto(100,-100)
turtle.goto(-100,-100)
turtle.goto(-100,100)
turtle.goto(0,0)
#绕着这些点绘制一个图形
海龟坐标:
turtle.fd(d) #正前方运动
turtle.bk(d) #反方向运动
turtle.circle(r,angle) #海龟正前方某一个点曲线运动
2.3.5 turtle角度坐标体系
绝对角度:
turtle.seth(angle) #海龟行进角度
- seth()改变海龟行进方向
- seth()只改变方向,但不行进
-
angle
为绝对度数
海龟角度:让海龟向左或向右运动
turtle.left(angle)
turtle.right(angle)
示例:
import turtle
turtle.left(45) #向海龟左边45度方向运动但不行进
turtle.fd(150) # 向前行进150个像素
turtle.right(135) #向海龟右边135度方向运动但不行进
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
绘制图形:
2.3.6 RGB常见色彩
turtle.colormode(mode)
turtle.colormode(255)
# mode通常采用小数值,可切换为整数值
- RGB指红蓝绿三个通道的颜色组合
- 覆盖视力所能感知的所有颜色
RGB每色取值范围0-255或0-1小数
2.4 turtle程序语法元素分析
2.4.1 库引用与import
1.库引用:扩充Pytho程序功能的方式
- 使用import保留字完成,采取.() 编码风格
import<库名>
<库名>.<函数名>(<函数参数>)
如:import.fd(50)
#PythonDraw.py
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40,80)
turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,100)
turtle.fd(40*2/3)
turtle.done()
2.使用from和import保留字共同完成
from <库名> import <函数名>
from <库名> import*
<函数名>(<函数参数>)
#PythonDraw.py
from turtle import* #下面语句就相当于儿子,则不需要标注谁是父亲
setup(650,350,200,200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):
circle(40,80)
circle(-40,80)
circle(40,80/2)
fd(40)
circle(16,100)
fd(40*2/3)
done()
3.比较:
- 第一种方法不会出现函数重名问题
- 第二种方法会出现
- 使用import和as保留字共同完成
import <库名> as <库别名>
<库别名>.<函数名>( <函数参数> )
相当于为海龟取了一个小名
#PythonDraw.py
import turtle as 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,100)
t.fd(40*2/3)
t.done()
2.4.2 画笔控制函数
画笔操作后一直有效,一般成对出现
- turtle.penup() 别名 turtle.pu()
名字不同功能一样
抬起画笔,海龟在天上飞 - turtle.pendown() 别名turtle.pd()
落下画笔,海龟在爬行 - turtle.pensize() 别名 turtle.width(width)
画笔宽度,海龟的腰围 - turtle.pencolor(color) color为颜色字符串或r,g,b值(color参数有三种形式)
画笔颜色,海龟在涂装
color的三种参数
- 颜色字符串:turtle.pencolor(
"purple"
) - RGB的小数值:turtle.pencolor(
0.63,0.13,0.94
) - RGB的元组值:turtle.pencolor(
(0.63,0.13,0.94)
)
2.4.3运动控制函数
控制海龟行进:走直线&走曲线
- turtle.forward(d) 别名 turtle.fd(d)
向前行进,海龟走直线d行进距离,可以为复负数
- turtle.circle(r,extent=None)
根据半径r
绘制extent
角度的弧形 -
r
:默认圆心在海龟左侧r距离的位置 -
extent
:绘制角度,默认是360度整圆
r为正值,则默认圆心在海龟的左侧,r为负值,则圆心在海龟的右侧
2.4.4 方向控制函数
绝对角度:
turtle.seth(angle) #海龟行进角度
- seth()改变海龟行进方向
- seth()只改变方向,但不行进
-
angle
为绝对度数
海龟角度:
让海龟向左或向右运动(在海龟的角度看方向)
turtle.left(angle)
turtle.right(angle)
2.4.5 循环语句
按照一定次数循环执行一组语句
- for <变量> in range(<次数>):
<被循环执行的语句> - <变量> 表示:每次循环的次数的计数,0到<次数>-1
for i in range(5)
print(i)
0 1 2 3 4
for i in range(5)
print("Hello:",i) #双引号后面加个逗号,则会产生一个空格
Hello: 0
Hello: 1
Hello: 2
Hello: 3
Hello: 4
2.4.6 range()函数
产生循环计数序列
- range(N)
产生0到N-1的整数序列,共N个 - range(M,N)
产生M到N-1的整数序列,共N-M个
range(5)
0 1 2 3 4
range(2,5)
2 3 4
2.4.7代码分析
#PythonDraw.py
import turtle as t #给海龟取个小名,然后用小名
t.setup(650,350,200,200) #设置海龟起始的位置
t.penup() #将画笔拿起
t.fd(-250) # 因为画笔已经拿起,所以海龟向后移250个像素不会有笔迹
t.pendown() #把画笔放下
t.pensize(25) #设置笔头的大小
t.pencolor("purple") # 设置颜色
t.seth(-40) #设置画笔行进的角度为-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,100)
t.fd(40*2/3) # 向前行进40*2/3个像素
t.done()
2.5实例
思路:
看到这个图就很容易想到正八形的内角,到要注意转的角度并不是内角。
而要看与线所成的角度 而是45度
#OctagonDraw.py
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(100)
t.left(45) #135为内角
思路:
这题跟上一题差不多,只要理解角度如何改变就行了
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(150)
t.left(135)
上一篇: 网络基础-网络协议
下一篇: 初识Python——基本图形绘制
推荐阅读
-
C# 绘制PDF图形——基本图形、自定义图形、色彩透明度 博客分类: .NET PDF C#.NETSpire.PDFPDF图形
-
【小白学Python】Python基本图形的turtle(海龟)绘制法
-
php使用gd2绘制基本图形示例(直线、圆、正方形)
-
php使用gd2绘制基本图形示例(直线、圆、正方形)
-
Android自定义控件绘制基本图形基础入门
-
Android编程开发之在Canvas中利用Path绘制基本图形(圆形,矩形,椭圆,三角形等)
-
iOS App开发中用CGContextRef绘制基本图形的基本示例
-
canvas游戏开发学习之二:绘制基本图形
-
Python_XXBJ基本图形绘制
-
div+css3绘制基本图形_html/css_WEB-ITnose