利用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

2.png

3.png

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

四、原理解释

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绘制创意中秋节月饼的详细内容,更多关于Python月饼的资料请关注我们其它相关文章!

(0)

相关推荐

  • 使用Python为中秋节绘制一块美味的月饼

    对于在外的游子,每逢佳节倍思亲.而对于996ICU的苦逼程序猿们,最期待的莫过于各种节假日能把自己丢在床上好好休息一下了.这几天各公司都陆续开始发中秋礼品了.朋友圈各种秀高颜值的月饼,所以今天我也提前给大家送去一份中秋的美味月饼吧! python & turtle python的turtle库,最早还是在小甲鱼的[零基础入门学习Python]中接触的,好久没用了有些生疏,带大家一起回顾下模块的使用吧. 如果你是想认真学习这个库,推荐去官网仔细学习 https://docs.python.org/

  • 基于Python实现中秋佳节月饼抢购脚本

    目录 申明 前言 原理 安装 Selenium 方式1 方式2 安装浏览器驱动 下载 配置环境变量 代码开发 测试 注意 申明 本博客不提供任何服务器端程序,也不提供任何收费抢购软件.该博客仅用于学习selenium自动化工具.如有侵犯到任何公司的合法权益,请私信我,会第一时间删除相关代码. 前言 每逢节假日是不是有小伙伴总是感叹自己手速不如人呢?明明喜欢的东西下一秒就售罄了,不要怀疑自己的手速,有时候你不知道和你一起下单的是人还是脚本哦.今天就给大家分享一个python版抢购月饼的脚本,我们要

  • 中秋将至利用python画一些月饼从天而降不用买了

    目录 ​​导语 正文 ​​总结 ​ ​​导语 好消息!下一个假期已经在路上了,正在向我们招手呢! 大家只要再坚持5天 就能迎来中秋小长假啦~ ​"海上生明月,天涯共此时" 又是一年中秋至!快跟着小编来看看怎么寓教于乐吧-- 今天带大家编写一款应时应景的中秋小游戏! 天上掉月饼啦~天上掉月饼啦~天上掉月饼啦~ 正文 ​准备好相应的素材如下: ​ 环境安装: Python3.6.pycharm2021.游戏模块Pygame. 安装:pip install pygame ​初始化游戏加载素材

  • 如何利用Python给自己的头像加一个小国旗(小月饼)

    今年国庆节也是中秋节,首先祝大家节日快乐,本文我们使用 Python 来给自己的头像加一个小国旗或小月饼. 国旗 对于国旗,我们可以使用 Python 来画一个,用到的 Python 库是大家比较熟悉的 turtle,我们的五星红旗组成元素包括:红底.一颗黄的主星和四颗黄的副星. 首先画一个长方形的红底,代码实现如下: turtle.setup(600, 400, 0, 0) turtle.bgcolor("red") 效果如下: 接着画一颗主星,代码实现如下: turtle.fill

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

    目录 一.效果展示 二.程序代码 三.素材背景 四.原理解释 一.效果展示 话不多说先上效果 为了更有意境我加了个完美的背景来衬托出月饼的好看 我的月饼画的不圆的原因是我故意的,为什么呢? 因为月有阴晴圆缺啊!哈哈! 上面是直接画的,没有填充,接下来我们画一个有填充的. 也可以添加好看的背景噢. 二.程序代码 代码将在下面解释,可以看着代码对应下面的函数解释. 第一种: import turtle import math turtle.title("照彻乾坤,印透山河") turtle

  • 利用Python绘制有趣的万圣节南瓜怪效果

    关于万圣节 万圣节又叫诸圣节,在每年的11月1日,是西方的传统节日;而万圣节前夜的10月31日是这个节日最热闹的时刻.在中文里,常常把万圣节前夜(Halloween)讹译为万圣节(All Saints' Day). 为庆祝万圣节的来临,小孩会装扮成各种可爱的鬼怪向逐家逐户地敲门,要求获得糖果,否则就会捣蛋.而同时传说这一晚,各种鬼怪也会装扮成小孩混入群众之中一起庆祝万圣节的来临,而人类为了让鬼怪更融洽才装扮成各种鬼怪. 不知从何时开始,西方的节日一个个的走进了天朝,情人节.圣诞节.感恩节.万圣节

  • 利用python绘制数据曲线图的实现

    "在举国上下万众一心.众志成城做好新冠肺炎疫情防控工作的特殊时刻,我们不能亲临主战场,但我们能坚持在大战中坚定信心.不负韶华." 1.爬取新闻保存为json文件,并将绘图所需数据保存至数据库 数据库表结构: 代码部分: import pymysql import re import sys,urllib,json from urllib import request from datetime import datetime import pandas as pd Today=date

  • 利用python绘制中国地图(含省界、河流等)

    我们可以使用Basemap这个工具包来实现中国地图的绘制 首先需要加载一些包: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap Basemap包就是气象画图的利器,现在我们就可以愉快的画图了! plt.figure(1) map=Basemap() map.drawcoastlines() plt.title(r'$World\ Map$',fontsize=2

  • 利用python绘制正态分布曲线

    使用Python绘制正态分布曲线,借助matplotlib绘图工具: #-*-coding:utf-8-*- """ python绘制标准正态分布曲线 """ # ============================================================== import numpy as np import math import matplotlib.pyplot as plt def gd(x, mu=0, s

  • 中秋快到了利用 python 绘制中秋礼物

    目录 导语 正文 总结 导语 ​ 哈喽哈喽!大家上午好,我是木木子. 新的一天开始啦,之前写了很多的画图代码嗯哼!你们还记得嘛?我就不整理了蛮多滴,你们可以自己翻翻往期的文章哈,有简单的 也有难点儿的总有一款适合你们~嘿嘿. 话说--中秋也快到了,你们放几天假吖? 假期长的小伙伴儿知道回家带什么礼物更让家人开心嘛?假装不知道.jpg. 小编告诉你们:当然是带着你们的男朋友.女朋友回家了~,来来来,有了对象没得对象的都看过来哈,时间仓促,给你们的中秋福利送了哈,写一个简单的中秋表白的画图源码啦!

  • 利用Python绘制虎年烟花秀

    目录 一.演示效果 二.python代码 三.前端代码 一.演示效果 b站:虎年烟花演示 二.python代码 import pygame from math import * from pygame.locals import * import random class firew:          def __init__(self, pos, color, light, size, move):         self.pos = list(pos)         self.colo

  • 详解如何利用Python绘制迷宫小游戏

    目录 构思 绘制迷宫 走出迷宫 完整代码 更大的挑战 关于坐标系设置 周末在家,儿子闹着要玩游戏,让玩吧,不利于健康,不让玩吧,扛不住他折腾,于是想,不如一起搞个小游戏玩玩! 之前给他编过猜数字 和 掷骰子 游戏,现在已经没有吸引力了,就对他说:“我们来玩个迷宫游戏吧.” 果不其然,有了兴趣,于是和他一起设计实现起来,现在一起看看我们是怎么做的吧,说不定也能成为一个陪娃神器~ 先一睹为快: 构思 迷宫游戏,相对比较简单,设置好地图,然后用递归算法来寻找出口,并将过程显示出来,增强趣味性. 不如想

  • 如何利用 Python 绘制动态可视化图表

    目录 一.安装相关的模块 二.gif和matplotlib的结合 三.gif和plotly的结合 四.matplotlib多子图动态可视化 五.动态气泡图 一.安装相关的模块 首先第一步的话我们需要安装相关的模块,通过pip命令来安装 pip install gif 另外由于gif模块之后会被当做是装饰器放在绘制可视化图表的函数上,主要我们依赖的还是Python当中绘制可视化图表的matplotlib.plotly.以及altair这些模块,因此我们还需要下面这几个库 pip install "

  • 利用Python绘制酷炫的3D地图

    目录 1.重庆市3D地图 2.中国3D地图一 3.中国3D地图二 4.中国3D地图三 5.地球展示 之前我们介绍了很多Python地图可视化的内容,本次主要介绍如何Python绘制3D地图,还是比较神奇的,下面让我们一起一饱眼福吧! 1.重庆市3D地图 from pyecharts import options as opts from pyecharts.charts import Map3D from pyecharts.globals import ChartType # 经纬度 exam

随机推荐