大家好,小编为大家解答python turtle circle 画半圆圆心在哪的问题。很多人还不知道python中用turtle画一个圆形,现在让我们一起来看看吧!
所用工具
1、Python中的turtle包
2、对Python似火的热情
先来介绍一番
Turtle作图又叫海龟作图,是Python中比较有趣的一个模块,功能强大,使用方便。简单来说,比如有一块空地,以中央为原点,画条横轴x,纵轴y,然后一只小乌龟以(0,0)作为起点,开始按照函数的指令来爬行,爬行的过程中会出现轨迹,还可以将爬行的地方填充一下颜色python自学能成功吗。这样,一个完美的图形就出现了。
是不是很好理解呢?
先开始一段小案例,便于理解。
画个同心圆
import turtle#每种解释分别出个案例
turtle.circle(100)#第一个圈圈大小
turtle.penup()#将提起笔,移动时无图。注释掉的话图形就会相连
turtle.goto(0, 50)#提笔画第二个圈圈时起点往上移动50个向量
turtle.pendown()#将笔放下,移动时绘图。注释掉的话移动时无图了
turtle.circle(50)#第二个圈圈大小
turtle.done()#必须是乌龟图形程序中最后一个语句
结果如下
如果注释掉turtle.penup()呢?
import turtle#每种解释分别出个案例
turtle.circle(100)#第一个圈圈大小
#turtle.penup()#将提起笔,移动时无图。注释掉的话图形就会相连
turtle.goto(0, 50)#提笔画第二个圈圈时起点往上移动50个向量
turtle.pendown()#将笔放下,移动时绘图。注释掉的话移动时无图了
turtle.circle(50)#第二个圈圈大小
turtle.done()#必须是乌龟图形程序中最后一个语句
结果如下:
注释掉之后两个圆连一起了,所以turtle.penup()是提起画笔的意思。
如果注释掉turtle.pendown()呢?
import turtle#每种解释分别出个案例
turtle.circle(100)#第一个圈圈大小
turtle.penup()#将提起笔,移动时无图。注释掉的话图形就会相连
turtle.goto(0, 50)#提笔画第二个圈圈时起点往上移动50个向量
#turtle.pendown()#将笔放下,移动时绘图。注释掉的话移动时无图了
turtle.circle(50)#第二个圈圈大小
turtle.done()#必须是乌龟图形程序中最后一个语句
结果如下:
注释掉之后去画外圆的时候没有笔迹了,所以turtle.pendown()需要将笔放下。
如果将turtle.goto(0, 50)改成turtle.goto(0, 0)呢?
import turtle#每种解释分别出个案例
turtle.circle(100)#第一个圈圈大小
turtle.penup()#将提起笔,移动时无图。注释掉的话图形就会相连
#turtle.goto(0, 0)#提笔画第二个圈圈时起点往上移动50个向量
turtle.pendown()#将笔放下,移动时绘图。注释掉的话移动时无图了
turtle.circle(50)#第二个圈圈大小
turtle.done()#必须是乌龟图形程序中最后一个语句
结果如下:
改成(0,0)之后,画第二个圆的起点和第一个圆的起点一样了。所以turtle.goto(0, 50)是将画第二个圆的起点落于(0,0)点上面50个向量处。
普及了一点小知识后,画月饼正式开始了!
import turtle
def goto(x, y):#定义提笔的位置
turtle.penup() #将笔提起,移动时无图
turtle.goto(x, y)
turtle.pendown() #将笔放下,移动时绘图。
def yuebing_wai():
turtle.pensize(20)#画笔调粗点
turtle.color( "#F8CD32","#FBA92D")#填充颜色,F8CD32是圆圈的边缘颜色,FBA92D是圆圈的填充颜色
goto(0, -200)#画笔起点位于(0,0)点的下方200向量处
turtle.begin_fill()#准备开始填充
turtle.circle(200)#定义半径
turtle.end_fill()#填充结束
def yuebing_zhong():
goto(0, 0)#画笔起点位于(0,0)处
turtle.color("#F0BE7C")
for _ in range(20):#_是占位符,表示临时变量,仅用一次,后面无需再用到
turtle.right(18)#顺时针移动18度
turtle.begin_fill()
turtle.forward(220)#向前移动的距离
turtle.circle(40, 180)#上一条向前移动220之后,开始画半径40的半圆
turtle.goto(0, 0)#画完半圆之后回到(0,0)
turtle.right(360)#顺时针转个360度
turtle.end_fill()
def yuebing_nei():#逻辑同上
turtle.right(360)
turtle.color('#F5E16F')#内层颜色
goto(0, -180)
for _ in range(12):
turtle.begin_fill()
turtle.circle(60, 120)
turtle.left(180)
turtle.circle(60, 120)
turtle.end_fill()
def fu():#
turtle.right(50)
goto(-70, -80)#更高坐标尽量使字靠中间
turtle.color("Gold")#颜色
turtle.write("福", font=("华文隶书", 120, "bold"))
turtle.done()
if __name__ == '__main__':
turtle.speed(90)
yuebing_zhong()
yuebing_wai()
yuebing_nei()
fu()
turtle.done()
结果如下:
怎么样?是不是很神奇呢?