绘制圆
关键代码
import turtle
# 创建一个海龟对象
t = turtle.Turtle()
# 绘制半径为100的完整圆
t.circle(100)
# 保持窗口不消失
turtle.done()
参数解析
绘制圆的方法: circle()
- radius:半径(正数:向左画,负数:向右画)。
- extent(可选):弧度(如 180 为半圆)。
- steps(可选):多边形边数(如 steps=6 画六边形)。
示例
向右画圆
adius:半径(正数:向左画,负数:向右画)。
import turtle
# 创建一个海龟对象
t = turtle.Turtle()
# 画圆半径为100,顺时针画圆
t.circle(-100)
# 保持窗口不消失
turtle.done()
绘制圆弧
extent(可选):弧度(如 180 为半圆)。
import turtle
# 创建一个海龟对象
t = turtle.Turtle()
# ,逆时针画圆,半径为100,圆弧度数为180度
t.circle(100,180)
# 保持窗口不消失
turtle.done()
绘制多边形
steps(可选):多边形边数(如 steps=6 画六边形)
import turtle
# 创建一个海龟对象
t = turtle.Turtle()
# ,逆时针画圆,半径为100,圆弧度数为360度,6笔绘制完成
t.circle(100,360,6)
# 保持窗口不消失
turtle.done()
绘制一半六边形
import turtle
# 创建一个海龟对象
t = turtle.Turtle()
# ,逆时针画圆,半径为100,圆弧度数为180度,3笔绘制完成
t.circle(100,180,3)
# 保持窗口不消失
turtle.done()
方向与位置控制
- 海龟的朝向:圆心始终在海龟左侧,绘制时海龟逆时针移动。
- 调整位置:用 penup() + goto() 移动起点。
例 1:绘制多个不同位置的圆
import turtle
t = turtle.Turtle()
t.speed(1)
# 示例 1:在 (100, 100) 处画红色圆
t.penup()
t.goto(100, 100) # 移动到坐标 (100, 100)
t.pendown()
t.pencolor("red")
t.circle(50) # 半径 50,圆心在当前位置左侧 50 像素处
# 示例 2:在 (-100, -100) 处画蓝色圆
t.penup()
t.goto(-100, -100)
t.pendown()
t.pencolor("blue")
t.circle(50)
turtle.done()
绘制花朵
import turtle
t = turtle.Turtle()
t.speed(0) # 最高速度
t.pensize(2)
t.pencolor("pink")
# 移动到起始位置
t.penup()
t.goto(0, -50) # 让花朵中心适当上移
t.pendown()
# 画花瓣(使用对称圆弧构造)
for _ in range(6):
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.left(60) # 旋转到下一个花瓣方向
turtle.done()
绘制花朵,加上茎叶
import turtle
t = turtle.Turtle()
t.speed(5) # 最高速度
t.pensize(2)
t.pencolor("pink")
t.hideturtle()
# 移动到起始位置
t.penup()
t.goto(0, -50) # 让花朵中心适当上移
t.pendown()
t.left(90)
t.forward(20)
t.right(90)
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.right(120) # 旋转到下一个花瓣方向
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.left(90)
t.forward(80)
t.right(60)
# 画花瓣(使用对称圆弧构造)
for _ in range(6):
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.left(60) # 旋转到下一个花瓣方向
turtle.done()
绘制花朵,加上花盆
import turtle
t = turtle.Turtle()
t.speed(5) # 最高速度
t.pensize(2)
t.pencolor("pink")
t.hideturtle()
'''绘制花盆'''
# 移动到起始位置
t.penup()
t.goto(0, -50) # 让花朵中心适当上移
t.pendown()
# 向左边绘制50的直线
t.left(180)
t.forward(50)
# 向下绘制圆弧
t.left(90)
t.circle(50, 60)
# 向右边绘制直线
t.left(30)
t.forward(50)
# 绘制向上的圆弧
t.left(30)
t.circle(50, 60)
# 绘制直线
t.left(90)
t.forward(50)
'''花盆结束'''
'''绘制茎叶'''
t.right(90)
t.forward(20)
t.right(90)
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.right(120) # 旋转到下一个花瓣方向
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.left(90)
t.forward(80)
t.right(60)
'''绘制茎叶结束'''
# 画花瓣(使用对称圆弧构造)
for _ in range(6):
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.left(60) # 旋转到下一个花瓣方向
turtle.done()
绘制花朵,加上花盆,颜色填充
t.fillcolor(“red”)
t.begin_fill() # 开始填充颜色
t.end_fill() # 结束填充
import turtle
t = turtle.Turtle()
t.speed(5) # 最高速度
t.pensize(2)
t.pencolor("pink")
t.hideturtle()
'''绘制花盆'''
# 移动到起始位置
t.penup()
t.goto(0, -50) # 让花朵中心适当上移
t.pendown()
t.fillcolor("red")
t.begin_fill() # 开始填充颜色
# 向左边绘制50的直线
t.left(180)
t.forward(50)
# 向下绘制圆弧
t.left(90)
t.circle(50, 60)
# 向右边绘制直线
t.left(30)
t.forward(50)
# 绘制向上的圆弧
t.left(30)
t.circle(50, 60)
# 绘制直线
t.left(90)
t.forward(50)
t.end_fill()
'''花盆结束'''
'''绘制茎叶'''
t.pencolor("#2E8B57") # 森林绿色
t.fillcolor("#2E8B57")
t.begin_fill()
t.right(90)
t.forward(20)
t.right(90)
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.right(120) # 旋转到下一个花瓣方向
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.left(90)
t.forward(80)
t.right(60)
t.end_fill()
'''绘制茎叶结束'''
t.pencolor("#FF69B4") # 亮粉色
t.fillcolor("#FF69B4")
t.begin_fill()
# 画花瓣(使用对称圆弧构造)
for _ in range(6):
t.circle(50, 60) # 画左半花瓣
t.left(120)
t.circle(50, 60) # 画右半花瓣
t.left(60) # 旋转到下一个花瓣方向
t.end_fill()
turtle.done()
绘制同心圆
import turtle
t = turtle.Turtle()
t.speed(5)
# 初始位置 (0, 0)
for r in range(20, 100, 20): # 半径从 20 到 80,步长 20
t.penup()
t.goto(0, -r) # 圆心在 (0,0),海龟在 (0, -r) 处
t.pendown()
t.circle(r) # 绘制半径为 r 的圆
turtle.done()
自定义方向绘制半圆
t.setheading(0) # 朝右
t.setheading(180) # 朝左
import turtle
t = turtle.Turtle()
t.speed(1)
# 绘制右半圆(圆心在左侧)
t.penup()
t.goto(0, 0)
t.setheading(0) # 朝右
t.pendown()
t.circle(50, 180) # 半圆(180 度)
# 绘制左半圆(调整方向)
t.penup()
t.goto(0, 0)
t.setheading(180) # 朝左
t.pendown()
t.circle(50, 180)
turtle.done()
绘制八卦图案
import turtle
t = turtle.Turtle()
t.speed(5)
# 绘制右半圆(圆心在左侧)
t.penup()
t.goto(0, 0)
t.setheading(0) # 朝右
t.pendown()
t.circle(50, 180) # 半圆(180 度)
# 绘制左半圆(调整方向)
t.penup()
t.goto(0, 0)
t.setheading(180) # 朝左
t.pendown()
t.circle(50, 180)
# 绘制外面的大圆
t.circle(100,360)
# 绘制八卦图中间的小圆
t.penup()
t.goto(0, 35)
t.pendown()
t.circle(15)
t.penup()
t.goto(0, -65)
t.pendown()
t.circle(15)
turtle.done()
绘制八卦图案,填充黑白色
因为要填充颜色,绘制的思路就需要改变一下,因为填充颜色是按照绘制路径来的。所以要一半一半的绘制。先绘制黑色部分,再绘制白色部分
import turtle
t = turtle.Turtle()
t.speed(5)
t.hideturtle() # 隐藏画笔
'''黑色部分绘制'''
# 填充黑色背景
t.fillcolor("black")
t.begin_fill()
# 外面的大圆半径100,圆心在0,0,画一半,方便填充颜色
t.penup()
t.goto(0, -100)
t.pendown()
t.circle(100,180)
# 画一个小半圆,半径50
t.circle(50,180)
# 顺时针绘制一个小半圆,半径50
t.circle(-50,180)
t.end_fill()
'''黑色部分绘制完成'''
'''绘制白色部分'''
# 顺时针绘制外面的另外一半圆
t.circle(-100,180)
'''绘制白色部分完成'''
# 绘制黑色中间的小圆,半径15,填充白色
t.penup()
t.goto(0, 35)
t.pendown()
t.fillcolor("white")
t.begin_fill()
# 根据当前箭头方向,逆时针画圆
t.circle(15)
t.end_fill() # 结束填充
# 绘制白色中间的小圆,半径15,填充黑色
t.penup()
t.goto(0, -35)
t.pendown()
t.fillcolor("black")
t.begin_fill()
# 根据当前箭头方向,顺针画圆
t.circle(-15)
t.end_fill()
turtle.done()
绘制八卦图案,填充黑白色
要点:两个圆重叠
import turtle
# 设置画布背景颜色
turtle.bgcolor("black")
# 创建画笔
t = turtle.Turtle()
t.speed(3)
t.pensize(2)
t.pencolor("white") # 月亮边缘颜色
t.fillcolor("white") # 月亮填充颜色
# 画大圆(完整月亮)
t.penup()
t.goto(50, -50) # 让月亮偏右一些
t.pendown()
t.begin_fill()
t.circle(100) # 大圆
t.end_fill()
t.pencolor("black") # 月亮边缘颜色
# 画小圆(遮挡部分形成月牙)
t.penup()
t.goto(110, -50) # 调整小圆的位置形成不同的月相
t.pendown()
t.fillcolor("black") # 小圆填充黑色,使其与背景融合
t.begin_fill()
t.circle(100) # 小圆
t.end_fill()
# 隐藏画笔
t.hideturtle()
turtle.done()
任务1:画一个红色边框、黄色填充的圆
任务2:画一个半圆(半径=180),并移动到坐标(-100,0)画完整圆
同心圆:绘制靶子
螺旋圆:结合半径递增和角度旋转
自由创作
设计:彩色风车、笑脸、雪花等圆形组合图案