利用海龟笔绘制1/3圆弧

功能要求

利用海龟笔绘制一个半径为100的,1/3圆弧,并隐藏海龟画笔,设置画笔颜色,设置海龟笔的宽度和海龟笔的颜色。

实例代码

import turtle

'''设置画笔和画笔的初始状态'''

turtle.hideturtle() # 隐藏海龟笔头

turtle.bgcolor("lavender") # 设置画布的背景颜色

turtle.width(3) # 设置画笔的宽度

turtle.color("Purple") # 设置画笔的颜色

'''绘制半径为100的,1/3圆弧'''

turtle.circle(100, 120)

turtle.done() # 暂停程序,停止画笔绘制

运行结果

python中用海龟模拟器画团旗(利用海龟画笔绘制六芒星阵)(1)

代码分析

turtle.hideturtle():隐藏海龟笔头。

turtle.bgcolor("lavender"):设置画布的背景颜色,括号中的“lavender”为Python预设的颜色值。

turtle.width(3):设置画笔的宽度,即控制画笔的粗细。括号中的数字为画笔的宽度,数字越大画笔越粗。

turtle.color("Purple"):设置画笔的颜色

turtle.circle(100, 120):绘制半径为100的角度为120°的圆弧,其中120°为1/3的弧度。

知识说明

turtle.circle(radius, extent=None, steps=None):绘制一个radius指定半径的圆。圆心相对于海龟笔开始位置的坐标为(-radius, radius),如果radius为正值则朝逆时针方向绘制圆弧,否则朝顺时针方向;extent为一个夹角,用来决定绘制圆的一部分,extent参数可以不指定,如未指定extent则绘制整个圆,即360°的圆弧,如果extent指定值小于360,则不是完整圆,则以当前画笔位置为一个端点绘制圆弧,如果extent指定值大于360则绘制了一整个圆,但画笔停下的位置不同也就是说画笔的方向不同。圆实际是以其内切正多边形来近似表示的,其边的数量由steps指定。如果未指定边数则会自动确定。此方法也可用来绘制正多边形。

利用海龟笔绘制内切正三角形

功能要求

利用海龟笔绘制一个半径为100的内切正三角形,并隐藏海龟画笔,设置画笔颜色,设置海龟笔的宽度和海龟笔的颜色;同时设置内切正三角形的填充颜色。

实例代码

import turtle

'''设置画笔和画笔的初始状态'''

turtle.hideturtle() # 隐藏海龟笔头

turtle.bgcolor("lavender") # 设置画布的背景颜色

turtle.width(3) # 设置画笔的宽度

turtle.color("Purple") # 设置画笔的颜色

'''绘制半径为100的内切正三角形'''

turtle.color("Purple") # 设置画笔的颜色

turtle.fillcolor("orange") # 设置填充的颜色

turtle.begin_fill() # 设置开始填充点

turtle.circle(100, steps = 3) # 绘制内切正三角形

turtle.end_fill() # 设置填充的结束点

turtle.done() # 暂停程序,停止画笔绘制

运行结果

python中用海龟模拟器画团旗(利用海龟画笔绘制六芒星阵)(2)

代码分析

turtle.fillcolor("orange"):设置填充的颜色

turtle.begin_fill()

turtle.circle(100, steps = 3)

turtle.end_fill():设置颜色填充区域,turtle.begin_fill()设置了填充区域的起点,turtle.circle(100, steps = 3)设置了填充的范围,turtle.end_fill(),设置填充的结束点。

注意:在设置填充区域时需要设置填充的开始位置即turtle.begin_fill()和填充的结束位置即turtle.end_fill()

turtle.circle(100, steps = 3):绘制内切正三角形,由于在调用turtle.circle()函数时没有指定第2个参数而直接指定了第三个参数,需要使用关键字参数的方式指定第三个参数,即“参数名 = 参数值”的方式。

利用海龟笔绘制六芒星阵

功能要求

利用海龟笔绘制一个基于半径为100的六芒星阵,并设置画笔的速度,隐藏海龟画笔,设置画笔颜色,设置海龟笔的宽度和海龟笔的颜色;同时设置内切正三角形的填充颜色。

python中用海龟模拟器画团旗(利用海龟画笔绘制六芒星阵)(3)

实例代码

import turtle

'''设置画笔和画笔的初始状态'''

turtle.speed(0) # 设置海龟笔的速度

turtle.hideturtle() # 隐藏海龟笔头

turtle.bgcolor("lavender") # 设置画布的背景颜色

turtle.width(3) # 设置画笔的宽度

turtle.color("Purple") # 设置画笔的颜色

'''设置画笔的起始位置'''

turtle.penup()

turtle.goto(0, -100)

turtle.pendown()

'''绘制基于半径为100的六芒星阵'''

turtle.color("Purple") # 设置画笔的颜色

turtle.fillcolor("orange") # 设置填充的颜色

turtle.begin_fill() # 设置开始填充点

turtle.circle(100, steps = 3) # 绘制第一个内切正三角形

turtle.circle(100) # 绘制六芒星阵的外圆形

# 移动画笔并修改画笔的角度,为第二个内切正三角形做准备

turtle.penup()

turtle.goto(0, 100)

turtle.left(180) # 画笔角度旋转180度

turtle.pendown()

turtle.circle(100, steps=3) # 绘制第二个内切正三角形

turtle.end_fill() # 设置填充的结束点

turtle.done() # 暂停程序,停止画笔绘制

代码改进

将绘制六芒星阵的外圆形和移动画笔位置和角度一次完成。

实例代码

import turtle

'''设置画笔和画笔的初始状态'''

turtle.speed(0) # 设置海龟笔的速度

turtle.hideturtle() # 隐藏海龟笔头

turtle.bgcolor("lavender") # 设置画布的背景颜色

turtle.width(3) # 设置画笔的宽度

turtle.color("Purple") # 设置画笔的颜色

'''设置画笔的起始位置'''

turtle.penup()

turtle.goto(0, -100)

turtle.pendown()

'''绘制基于半径为100的六芒星阵'''

turtle.color("Purple") # 设置画笔的颜色

turtle.fillcolor("orange") # 设置填充的颜色

turtle.begin_fill() # 设置开始填充点

turtle.circle(100, steps = 3) # 绘制第一个内切正三角形

turtle.circle(100, 540) # 绘制一个半径为100,角度为540度的圆

turtle.circle(100, steps=3) # 绘制第二个内切正三角形

turtle.end_fill() # 设置填充的结束点

turtle.done() # 暂停程序,停止画笔绘制

代码分析

turtle.circle(100, 540):绘制一个半径为100,角度为540度的圆,即画满了一个整圆后,在多画了半个圆,画笔的起点从圆的最下方到圆的最上方,画笔的方向从向右转向的向左。

,