利用Python绘制创意中秋节月饼

作者:猿童学 时间:2023-02-19 17:52:41 

一、效果展示

话不多说先上效果

为了更有意境我加了个完美的背景来衬托出月饼的好看

利用Python绘制创意中秋节月饼

我的月饼画的不圆的原因是我故意的,为什么呢?

因为月有阴晴圆缺啊!哈哈!

上面是直接画的,没有填充,接下来我们画一个有填充的。

利用Python绘制创意中秋节月饼

也可以添加好看的背景噢。

二、程序代码

代码将在下面解释,可以看着代码对应下面的函数解释。

第一种:

import turtle
import math
turtle.title("照彻乾坤,印透山河")
turtle.bgpic("yueliang/1.png")

p = turtle.Turtle()
p.pensize(4)
p.speed(3)

#做月饼的面
def ellipse(a,b,n=500,c='#CD950C'):
   p.penup()
   p.setpos(a,0)

color = p.color(c)
   p.pendown()

for i in range(n):
       radian = 2 * math.pi /n
       theta = (i+1) * radian
       next_point = (a * math.cos(theta)),b * math.sin(theta)
       p.setpos(next_point)

ellipse(300,200,c='#CD950C')
ellipse(296,196,c='#FFB90F')
ellipse(292,192,c='#FFD700')

#做月饼的底
turtle.penup()
turtle.goto(-10,-300)
turtle.color("#CD950C")
turtle.pensize(6)
turtle.pendown()

turtle.circle(430,42)#33
turtle.circle(420,-84)#-60
turtle.goto(-296,-40)
turtle.penup()
turtle.goto(296,-40)
turtle.pendown()
turtle.right(54)
turtle.forward(151)
turtle.penup()
turtle.goto(0,0)
turtle.pendown()

def draw(a1,b1,a2,b2,f='#CD950C'):#边角的2个点,分别是(a1,b1),(a2,b2)
   turtle.penup()
   turtle.goto(a1,b1)
   turtle.pensize(6)
   turtle.color(f)
   turtle.pendown()
   turtle.goto(a2,b1)
   turtle.goto(a2,b2)
   turtle.penup()
   return()

#下面是4个角图案
draw(260,78,130,170,'#FFD700')
draw(250,90,150,160)
draw(240,102,172,150)
draw(230,114,194,140)

draw(-260,-78,-130,-170,'#FFD700')
draw(-250,-90,-150,-160)
draw(-240,-102,-172,-150)
draw(-230,-114,-194,-140)

draw(260,-78,130,-170,'#FFD700')
draw(250,-90,150,-160)
draw(240,-102,172,-150)
draw(230,-114,194,-140)

draw(-262,78,-130,170,'#FFD700')
draw(-250,90,-150,160)
draw(-240,102,-172,150)
draw(-230,114,-194,140)

turtle.penup()
turtle.pensize(6)
turtle.color("#CD950C")
turtle.goto(-270,66)
turtle.pendown()
turtle.goto(-150,66)
turtle.goto(-150,-66)
turtle.goto(-270,-66)
turtle.goto(-270,-54)
turtle.goto(-170,-54)
turtle.goto(-170,54)
turtle.goto(-276,54)
turtle.goto(-276,42)
turtle.goto(-190,42)
turtle.goto(-190,-42)
turtle.goto(-276,-42)
turtle.goto(-276,-30)
turtle.goto(-210,-30)
turtle.goto(-210,30)
turtle.goto(-279,30)
turtle.goto(-279,18)
turtle.goto(-230,18)
turtle.goto(-230,-18)
turtle.goto(-282,-18)
turtle.goto(-282,-2)
turtle.goto(-258,-2)
turtle.penup()

turtle.penup()
turtle.goto(-128,-2)
turtle.pendown()
turtle.color("#FFD700")
turtle.pensize(2)
turtle.goto(126,-2)
turtle.penup()

turtle.penup()
turtle.pensize(6)
turtle.color("#CD950C")
turtle.goto(270,66)
turtle.pendown()
turtle.goto(150,66)
turtle.goto(150,-66)
turtle.goto(270,-66)
turtle.goto(270,-54)
turtle.goto(170,-54)
turtle.goto(170,54)
turtle.goto(276,54)
turtle.goto(276,42)
turtle.goto(190,42)
turtle.goto(190,-42)
turtle.goto(276,-42)
turtle.goto(276,-30)
turtle.goto(210,-30)
turtle.goto(210,30)
turtle.goto(279,30)
turtle.goto(279,18)
turtle.goto(230,18)
turtle.goto(230,-18)
turtle.goto(282,-18)
turtle.goto(282,-2)
turtle.goto(258,-2)
turtle.penup()

turtle.penup()
turtle.pensize(6)
turtle.color("#CD950C")
turtle.goto(-110,174)
turtle.pendown()
turtle.goto(-110,90)
turtle.goto(110,90)
turtle.goto(110,174)
turtle.goto(90,174)
turtle.goto(90,102)
turtle.goto(-90,102)
turtle.goto(-90,176)
turtle.goto(-70,176)
turtle.goto(-70,114)
turtle.goto(70,114)
turtle.goto(70,176)
turtle.goto(50,176)
turtle.goto(50,126)
turtle.goto(-50,126)
turtle.goto(-50,180)
turtle.goto(-30,180)
turtle.goto(-30,138)
turtle.goto(30,138)
turtle.goto(30,182)
turtle.goto(10,182)
turtle.goto(-10,182)
turtle.goto(-10,150)
turtle.goto(10,150)
turtle.goto(10,166)
turtle.penup()

turtle.penup()
turtle.goto(10,76)
turtle.pendown()
turtle.pensize(2)
turtle.color("#FFD700")
turtle.goto(10,-75)
turtle.penup()

turtle.penup()
turtle.pensize(6)
turtle.color("#CD950C")
turtle.goto(-110,-174)
turtle.pendown()
turtle.goto(-110,-90)
turtle.goto(110,-90)
turtle.goto(110,-174)
turtle.goto(90,-174)
turtle.goto(90,-102)
turtle.goto(-90,-102)
turtle.goto(-90,-176)
turtle.goto(-70,-176)
turtle.goto(-70,-114)
turtle.goto(70,-114)
turtle.goto(70,-176)
turtle.goto(50,-176)
turtle.goto(50,-126)
turtle.goto(-50,-126)
turtle.goto(-50,-180)
turtle.goto(-30,-180)
turtle.goto(-30,-138)
turtle.goto(30,-138)
turtle.goto(30,-182)
turtle.goto(10,-182)
turtle.goto(-10,-182)
turtle.goto(-10,-150)
turtle.goto(10,-150)
turtle.goto(10,-166)
turtle.penup()

#中间金色边框
turtle.penup()
turtle.goto(-130,170)
draw(-130,78,130,-78,'#FFD700')
draw(130,-78,-130,78,'#FFD700')
turtle.penup()

#中间金色字体
turtle.penup()
turtle.speed(1)
turtle.penup()
turtle.goto(-100,0)
turtle.pendown()
turtle.color('#D2691E')
turtle.write("花",font=("隶书",60,"bold"))
turtle.penup()
turtle.goto(30,0)
turtle.pendown()
turtle.write("好",font=("隶书",60,"bold"))
turtle.penup()
turtle.goto(-100,-80)
turtle.pendown()
turtle.write("月",font=("隶书",60,"bold"))
turtle.penup()
turtle.goto(30,-80)
turtle.pendown()
turtle.write("圆",font=("隶书",60,"bold"))
turtle.penup()

p.hideturtle()
turtle.mainloop()

第二种:

import turtle
turtle.title("祝大家中秋节快乐!")
# turtle.bgpic("hua/1.png")

turtle.speed(100)
turtle.color("#F5E16F")
for i in range(20):
# 顺时针移动18度
turtle.right(18)
turtle.begin_fill()
# 向前移动的距离
turtle.forward(220)
# 画半径为 40 的半圆
turtle.circle(40, 180)
# 画完半圆之后回到(0,0)
turtle.goto(0, 0)
turtle.right(360)
turtle.end_fill()
# 设置画笔粗细
turtle.pensize(20)
# 填充颜色(外部、内部)
turtle.color("#F5E16F", "#FF9933")
turtle.goto(0, -200)
# 准备开始填充
turtle.begin_fill()
turtle.circle(200)
# 填充结束
turtle.end_fill()
turtle.right(360)
turtle.color('#F5E16F')
turtle.goto(0, -180)
for i in range(12):
turtle.begin_fill()
turtle.circle(60, 120)
turtle.left(180)
turtle.circle(60, 120)
turtle.end_fill()

turtle.penup()
turtle.goto(-80,-40)
turtle.pendown()
turtle.color("#F5E16F")
turtle.write("团圆", font=("隶书", 60, "bold"))

turtle.mainloop()

三、素材背景

将图片放在文件夹中

本文将1.png放在yueliang文件夹中

1.png

利用Python绘制创意中秋节月饼

2.png

利用Python绘制创意中秋节月饼

3.png

利用Python绘制创意中秋节月饼

 更多的背景可以在网上搜索获得。

四、原理解释

1、概念

turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制,其概念诞生于1969年。turtle是最有价值的程序设计入门实践库,它是程序设计入门层面最常用的基本绘图库。

turtle的绘图原理:

有一只海龟处于画布正中心,由程序控制在画布上游走;

海龟走过的轨迹形成了绘制的图形

海龟由程序控制,可改变其大小,颜色等

使用 import 保留字对 turtle 库的引用以下方式:

import turtle

2、函数

窗体函数

turtle.setup()函数与窗体有关,定义如下:

turtle.setup(width,height,startx,starty)

作用:设置主窗体的大小和位置

参数:

  • width:窗口宽度。如果值是整数,表示像素值;如果值是小数,表示窗口宽度与屏幕的比例

  • height:窗口高度。如果值是整数,表示像素值;如果值是小数,表示窗口高度与屏幕的比例

  • startx:窗口左侧与屏幕右侧的像素距离。如果值是None,窗口位于屏幕水平正中央。

 画笔状态函数

函数描述
pendown( )放下画笔
penup()提起画笔
pensize(width)设置画笔线条的粗细为指定大小
pencolor()设置画笔的颜色
color( a,b)同时设置画笔和填充颜色
begin_fill()填充恩形前,调用该方法
end_fill( )填充图形结束
filling()返回填充的状态,True为填充。False为未填充
clear( )清空当前窗口,但不改变当前画笔的位置
reset()清空当前窗口,并重置位置等状态为默认值
screensize( )设置画布窗口的宽度、高度和背昱颜色
hideturtle()隐藏画笔的turtle形状
showturtle( )显示画笔的turtle形状
isvisible( )如果turtle可见,则返回True
write(str,font=None)输出font字体的字符串

画笔运动函数

函数描述
fd(distance)沿着当前方向前进指定距离
bk(distance)沿着当前相反方向后退指定距离
right(angle)向右旋转angle角度
left(angle)向左旋转angle角度
goto(x,y)移动到绝对坐标xy)处
sex(x)修改画笔的横坐标到次,纵坐标不变
sety(y)修改画笔的纵坐标到y,横坐标不变
seth(angle)设置当前朝向为angle角度
home()设置当前画笔位置为原点,朝向东
circle(radius,e)绘制一个指定半径r和角度e的圆或新形
dot(r.color)绘制一个指定半径r和预色color的圆点
undo( )撤销画笔的最后一步动作
speed()设置画笔的绘制速度,参数为0~10之间

颜色代码大全

利用Python绘制创意中秋节月饼

可以选择自己喜欢的颜色画。

来源:https://blog.csdn.net/qq_21402983/article/details/126601143

标签:Python,月饼
0
投稿

猜你喜欢

  • 详解python编译器和解释器的区别

    2023-06-26 03:53:09
  • Django URL传递参数的方法总结

    2023-02-18 13:08:33
  • 使用JavaScript获取地址栏参数的方法

    2024-04-28 10:18:25
  • 记录一篇关于redux-saga的基本使用过程

    2023-07-15 16:43:19
  • Flask URL传参与视图映射的实现方法

    2021-05-10 12:31:06
  • Django contrib auth authenticate函数源码解析

    2022-04-27 01:49:23
  • Python利用Turtle库绘制一个小老虎

    2023-06-13 11:35:02
  • python的去重以及数据合并的用法说明

    2023-01-12 07:12:57
  • python 将dicom图片转换成jpg图片的实例

    2023-08-24 11:12:27
  • vue3如何实现挂载并使用axios

    2023-07-02 16:46:06
  • SQL数据库连接超时时间已到的问题

    2024-01-20 15:05:53
  • CSS属性与JavaScript 编码方法对照表

    2008-12-01 13:01:00
  • Python字符串本身作为bytes进行解码的问题

    2022-12-22 07:18:42
  • AI经典书单 人工智能入门该读哪些书?

    2023-06-24 07:11:00
  • Selenium chrome配置代理Python版的方法

    2022-02-24 14:26:08
  • Python3使用 GitLab API 进行批量合并分支

    2023-05-26 08:38:53
  • go第三方库sqlx操作MySQL及ORM原理

    2024-01-18 21:12:32
  • vscode配置远程开发与免密登录的技巧

    2023-04-29 02:43:41
  • 浅谈python函数之作用域(python3.5)

    2021-09-22 05:49:42
  • 如何在django里上传csv文件并进行入库处理的方法

    2022-02-07 00:19:31
  • asp之家 网络编程 m.aspxhome.com