第a章 海龟画图
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
画笔有两个状态:提起和放下。只有放下才能绘图 画笔通过 forward 和 backward 进行基本绘制 hideturtle 和 showturtle 隐藏/显示画笔
>>> import turtle
>>> t = turtle.Turtle() >>> t.hideturtle() # 隐藏画笔 >>> t.pencolor('blue') >>> t.pensize(20)
10.6 实例
…… >>> sides = 6 >>> colors = ['red', 'yellow', 'blue', 'orange', 'green', 'purple'] >>> for x in range(60):
t.pencolor(colors[x%sides]) t.forward(x*3/sides+x) t.left(360/sides+1) t.width(x*sides/200)
>>> t.up() >>> t.goto(100, 0) >>> t.right(36)
>>> t.down() >>> for _ in range(5):
t.forward(200) t.left(144)
10.4 基本形状
forward 和 backward 方法绘制直线 dot 方法绘制点,参数为直径 circle 方法绘制圆,参数为半径 其他图形自己画
draw_5_angle(t, (-100, 50), (-100, 80), 30) draw_5_angle(t, (-50, 80), (-100, 50), 10) draw_5_angle(t, (-30, 60), (-100, 50), 10) draw_5_angle(t, (-30, 30), (-100, 50), 10) draw_5_angle(t, (-50, 10), (-100, 50), 10)
>>> import turtle
>>> t = turtle.Turtle()
>>> t.pencolor('red')
>>> t.circle(12)
# 半径为12的圆,不填充
>>> t.up()
>>> t.goto(100, 100)
>>> t.down()
>>> t.dot(12)
# 直径为12的点,填充
第10章 海龟画图
1. 画笔就是海龟 —— 基础知识 2. 先了解一下沙滩 —— 画布 3. 笔走龙蛇 —— 画笔 4. 基本元素 —— 线条与形状 5. 以字为画 —— 字符串的绘制 6. 实例
10.1 基础知识
基于 turtle 模块进行绘图
绘图的主要元素是画布与画笔
画图的基本过程:
import turtle import math
def draw_n_angle(aTurtle, size=50, num=5, color=None): if color: aTurtle.begin_fill() aTurtle.fillcolor(color) for i in range(num): aTurtle.forward(size) aTurtle.left(360.0 / num) aTurtle.forward(size) aTurtle.right(2 * 360.0 / num) if color: aTurtle.end_fill()
t = turtle.Turtle() t.hideturtle() t.pencolor('red')
t.up() t.goto(-150, -100) t.down() t.fillcolor('red') t.begin_fill() for _ in range(2):
t.forward(300) t.left(90) t.forward(200) t.left(90) t.end_fill()
def draw_5_angle(aTurtle=None, start_pos=(0, 0), end_pos=(0, 10), radius=100, color='yellow'):
size = radius * math.sin(math.pi / 5) / math.sin(math.pi * 2 / 5) aTurtle.left(math.degrees(math.atan2(end_pos[1] - start_pos[1], end_pos[0] start_pos[0]))) aTurtle.penup() aTurtle.goto(start_pos) aTurtle.forward(radius) aTurtle.pendown() aTurtle.right(math.degrees(math.pi * 9 / 10)) draw_n_angle(aTurtle, size, 5, color)
>>> t.goto(10,10) # 将画笔移动到起始处
>>> t.down()
# 落笔
>>> t.forward(100) # 绘画
10.2 画布
画布由平面直角坐标系来定位 画布中心的座位为(0,0) 使用 turtle.bgcolor() 方法修改画布背景色 使用 turtle.clear() 方法清空画布,但保留画笔状态 使用 turtle.reset() 方法重置画布和画笔
创建画布(画笔) 选择画笔颜色 提笔 将画笔移动到起始处 落笔 绘画
>>> import turtle
>>> t = turtle.Turtle()
# 创建画布
或者
>>> t = turtle.Pen()
# 创建画布
>>> t.pencolor('red')
# 画笔颜色
>>> t.up() # 提笔
10.3 画笔
画笔有几个基本属性:位置、方向、颜色、粗细和移动的速度
默认位置为画布中央,坐标(0, 0),使用 setpos 或者 goto 方法设置 默认方向为右(东),使用 left 、right 或 setheading 方法设置 默认颜色为黑色,使用 pencolor 设置 粗细使用 pensize 或者 width 设置 移动的速度范围为[0, 10]
10.5 字符串的绘制
画笔使用 write 方法绘制字符串 画笔位置默认在字符串的左上角,使用 align 参数修改 使用 font 参数指定字符串的字体 字符串不受画布方向影响
…… >>> t.write('Hello world!', font=('Times New Roman', 12))
>>> import turtle >>> t = turtle.Turtle() >>> t.hideturtle() >>> t.pencolor('red')
>>> t.up() >>> t.goto(-100,-100)
>>> t.down() >>> for _ in range(4):
t.forward(200) t.left(90)
在绘制图形之前使用 begin_fill 方法,之后使用 end_fill 方法,会使用默认颜色填充封 闭图形
在 end_fill 之前使用 fillcolor 方法修改填充的颜色
…… >>> t.begin_fill() >>> t.circle(100) >llow') >>> t.end_fill()
>>> import turtle
>>> t = turtle.Turtle() >>> t.hideturtle() # 隐藏画笔 >>> t.pencolor('blue') >>> t.pensize(20)
10.6 实例
…… >>> sides = 6 >>> colors = ['red', 'yellow', 'blue', 'orange', 'green', 'purple'] >>> for x in range(60):
t.pencolor(colors[x%sides]) t.forward(x*3/sides+x) t.left(360/sides+1) t.width(x*sides/200)
>>> t.up() >>> t.goto(100, 0) >>> t.right(36)
>>> t.down() >>> for _ in range(5):
t.forward(200) t.left(144)
10.4 基本形状
forward 和 backward 方法绘制直线 dot 方法绘制点,参数为直径 circle 方法绘制圆,参数为半径 其他图形自己画
draw_5_angle(t, (-100, 50), (-100, 80), 30) draw_5_angle(t, (-50, 80), (-100, 50), 10) draw_5_angle(t, (-30, 60), (-100, 50), 10) draw_5_angle(t, (-30, 30), (-100, 50), 10) draw_5_angle(t, (-50, 10), (-100, 50), 10)
>>> import turtle
>>> t = turtle.Turtle()
>>> t.pencolor('red')
>>> t.circle(12)
# 半径为12的圆,不填充
>>> t.up()
>>> t.goto(100, 100)
>>> t.down()
>>> t.dot(12)
# 直径为12的点,填充
第10章 海龟画图
1. 画笔就是海龟 —— 基础知识 2. 先了解一下沙滩 —— 画布 3. 笔走龙蛇 —— 画笔 4. 基本元素 —— 线条与形状 5. 以字为画 —— 字符串的绘制 6. 实例
10.1 基础知识
基于 turtle 模块进行绘图
绘图的主要元素是画布与画笔
画图的基本过程:
import turtle import math
def draw_n_angle(aTurtle, size=50, num=5, color=None): if color: aTurtle.begin_fill() aTurtle.fillcolor(color) for i in range(num): aTurtle.forward(size) aTurtle.left(360.0 / num) aTurtle.forward(size) aTurtle.right(2 * 360.0 / num) if color: aTurtle.end_fill()
t = turtle.Turtle() t.hideturtle() t.pencolor('red')
t.up() t.goto(-150, -100) t.down() t.fillcolor('red') t.begin_fill() for _ in range(2):
t.forward(300) t.left(90) t.forward(200) t.left(90) t.end_fill()
def draw_5_angle(aTurtle=None, start_pos=(0, 0), end_pos=(0, 10), radius=100, color='yellow'):
size = radius * math.sin(math.pi / 5) / math.sin(math.pi * 2 / 5) aTurtle.left(math.degrees(math.atan2(end_pos[1] - start_pos[1], end_pos[0] start_pos[0]))) aTurtle.penup() aTurtle.goto(start_pos) aTurtle.forward(radius) aTurtle.pendown() aTurtle.right(math.degrees(math.pi * 9 / 10)) draw_n_angle(aTurtle, size, 5, color)
>>> t.goto(10,10) # 将画笔移动到起始处
>>> t.down()
# 落笔
>>> t.forward(100) # 绘画
10.2 画布
画布由平面直角坐标系来定位 画布中心的座位为(0,0) 使用 turtle.bgcolor() 方法修改画布背景色 使用 turtle.clear() 方法清空画布,但保留画笔状态 使用 turtle.reset() 方法重置画布和画笔
创建画布(画笔) 选择画笔颜色 提笔 将画笔移动到起始处 落笔 绘画
>>> import turtle
>>> t = turtle.Turtle()
# 创建画布
或者
>>> t = turtle.Pen()
# 创建画布
>>> t.pencolor('red')
# 画笔颜色
>>> t.up() # 提笔
10.3 画笔
画笔有几个基本属性:位置、方向、颜色、粗细和移动的速度
默认位置为画布中央,坐标(0, 0),使用 setpos 或者 goto 方法设置 默认方向为右(东),使用 left 、right 或 setheading 方法设置 默认颜色为黑色,使用 pencolor 设置 粗细使用 pensize 或者 width 设置 移动的速度范围为[0, 10]
10.5 字符串的绘制
画笔使用 write 方法绘制字符串 画笔位置默认在字符串的左上角,使用 align 参数修改 使用 font 参数指定字符串的字体 字符串不受画布方向影响
…… >>> t.write('Hello world!', font=('Times New Roman', 12))
>>> import turtle >>> t = turtle.Turtle() >>> t.hideturtle() >>> t.pencolor('red')
>>> t.up() >>> t.goto(-100,-100)
>>> t.down() >>> for _ in range(4):
t.forward(200) t.left(90)
在绘制图形之前使用 begin_fill 方法,之后使用 end_fill 方法,会使用默认颜色填充封 闭图形
在 end_fill 之前使用 fillcolor 方法修改填充的颜色
…… >>> t.begin_fill() >>> t.circle(100) >llow') >>> t.end_fill()