python半圆代码_趣味项目:用Python代码做个月饼送给你!

所用工具

1、Python中的turtle包

2、对Python似火的热情

先来介绍一番

Turtle作图又叫海龟作图,是Python中比较有趣的一个模块,功能强大,使用方便。简单来说,比如有一块空地,以中央为原点,画条横轴x,纵轴y,然后一只小乌龟以(0,0)作为起点,开始按照函数的指令来爬行,爬行的过程中会出现轨迹,还可以将爬行的地方填充一下颜色。这样,一个完美的图形就出现了。

是不是很好理解呢?

先开始一段小案例,便于理解。

画个同心圆

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()

结果如下:

怎么样?是不是很神奇呢?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值