中秋快到了利用python画个月亮和月饼
作者:小生凡一 发布时间:2021-09-16 13:55:51
标签:python
目录
一、🌕月亮
二、🌕雪花月饼
一、🌕月亮
导入库matplotlib
和numpy
,作为工具直接用。
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
布局
创建一个长×宽
的一个画布大小
fig = plt.figure(figsize=(10,5))
布置3D视角
ax = fig.add_subplot(121, projection='3d')
生成等差数列的数据,画出一个球体
x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, np.pi, 100)
x1 = 10 * np.outer(np.cos(x), np.sin(y))
y1 = 10 * np.outer(np.sin(x), np.sin(y))
z = 10 * np.outer(np.ones(np.size(x1)), np.cos(y1))
ax.plot_surface(x1, y1, z, color='yellow')
此时我们发现只画了一个月亮,所以我们打算画第二个月亮,凑成一对~
ax = fig.add_subplot(122, projection='3d')
x = np.linspace(0, 2 * np.pi, 100)
y = np.linspace(0, np.pi, 100)
x1 = 10 * np.outer(np.cos(x), np.sin(y))
y1 = 10 * np.outer(np.sin(x), np.sin(y))
z = 10 * np.outer(np.ones(np.size(x1)), np.cos(y1))
ax.plot_surface(x1, y1, z, color='r')
效果图
还可以吧~哈哈哈哈!
二、🌕雪花月饼
导入所需要的库,用的比较多的是turtle
这个库来写的~
import turtle
import time
我们先画一个底层的黄黄的饼作为底部~
def circle():
fillX_y(0, 0)
turtle.color("#F0E68C")
for _ in range(30):
turtle.left(12)
turtle.begin_fill()
turtle.forward(230)
turtle.circle(25, 180)
turtle.goto(0, 0)
turtle.left(180)
turtle.end_fill()
time.sleep(0.5)
既然是雪花月饼
,就应该是有雪花,接下来我们来画雪花
吧!
采用科赫曲线
进行画雪花。要改变弯曲程度。
def koch(size, n): # 定义弯曲的直线使其有棱角
if n == 0:
turtle.fd(size)
else:
for angle in [0, 60, -120, 60]: # 每一次都对其进行合理的角度改变
turtle.left(angle)
koch(size / 3, n - 1)
因为打算画八个,并且加上颜色
,所以七彩雪花
~
if a == 1:
turtle.color("black") # 控制画笔的颜色
elif a == 2:
turtle.color("purple")
elif a == 3:
turtle.color("blue")
elif a == 4:
turtle.color("Cyan")
elif a == 5:
turtle.color("green")
elif a == 6:
turtle.color("yellow")
elif a == 7:
turtle.color("orange")
elif a == 8:
turtle.color("red")
由于是八个雪花嵌套的,所以要进行一个等比缩放的包裹。
turtle.penup()
turtle.goto(-200 * (4 / 7) ** (s - n), 100 * (4 / 7) ** (s - n))
# 每一次都是需要合理的等比例的扩大或是缩小
turtle.pendown()
turtle.pensize(2)
level = 5
koch(400 * (4 / 7) ** (s - n), level) # 大小是一个一个试出来的
# 不能超过setup的设定的范围 600,不然就越界了
turtle.right(120)
koch(400 * (4 / 7) ** (s - n), level)
turtle.right(120)
koch(400 * (4 / 7) ** (s - n), level) # 注意这里koch一次就要转一次角度
turtle.right(120)
turtle.hideturtle() # 隐藏画笔
flower(n - 1)
效果图!啊哈哈哈!是雪花月饼呀!
最后,希望我的中秋礼品能带给你一丝的欢喜~
提前祝中秋快乐鸭~
来源:https://juejin.cn/post/7007070450828181512


猜你喜欢
- 本文实例讲述了Python3删除排序数组中重复项的方法。分享给大家供大家参考,具体如下:给定一个排序数组,你需要在[原地]删除重复出现的元素
- 在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下。先看下我们的表数据,
- 本章为大家介绍的模块,在python2的时候,并不受宠,主要的问题是存在安全漏洞,发现问题就要及时解决,因此在现在3版本中,已经得到了妥善的
- 本文实例讲述了django框架cookie和session用法。分享给大家供大家参考,具体如下:首先知道http协议http协议它是无状态的
- 函数原型resample(self, rule, how=None, axis=0, fill_method=None, closed=No
- 简介深度学习需要熟悉使用一个框架,本人选择了TensorFlow,一边学习一边做项目,下面简要介绍TensorFlow中的基本常量、变量和运
- 1.建立项目,进入项目文件夹2.初始化ssh key 参见官网指南.(本机生成一对key,public key传到官网sshkey下面)ht
- 在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你
- props传值时子组件检测不到我们在Vue项目开发的过程中,经常会需要在父子组件传值,我们都知道,父子组件传值的时候是通过 props 来进
- 这几天有一台MySQL数据库服务器出现了频繁的掉线情况,通过排查,并没有排查出哪个网站被攻击,百思不得其解中的时候,群里有个朋友说是因为微软
- 一个完整的域名,由根域、顶级域、二级、 * ……域名构成,每级域名之间用点分开,每级域名由字母、数字和减号构成(第一个字母不能是减号),不区分
- 产生原因:先说一下Git和SVN的区别吧,有助于更好的理解这个问题。SVN从服务器上update文件时,如果文件有冲突,SVN会自动帮你me
- 爬虫与反爬虫,这相爱相杀的一对,简直可以写出一部壮观的斗争史。而在大数据时代,数据就是金钱,很多企业都为自己的网站运用了反爬虫机制,防止网页
- 目录一、前言二、什么是super三、super的常用使用场景总结一、前言最近有粉丝向我咨询super相关的问题,说网上搜索到的教程不够通俗易
- “/xxxxx”应用程序中的服务器错误。 -------------------------------------------------
- 个人网站如有会员注册模块+动网论坛的话,那网站要与动网论坛系统整合,实现不同Web系统之间的用户信息同步更新、登录等操作就不是件容易的事了,
- 在Python列表操作中:列表乘以某一个数,如list2 = list1 * 2 得到一个新的列表是list1的元素重复n次,且list1不
- 当你的查询相对简单的时候,每次从头开始创建SQL语句也不费什么工夫,不过,复杂的查询就不同了,每次都从头来会产生很多开发错误。因此,一旦让S
- 分离结构与表现的另一个重要方面是使用语义化的标记来构造文档内容。一个 XHTML 元素的存在就意味被标记内容的那部分有相应的结构化的意义,没
- 直接点 某8网 https://*****.b*b.h*****y*8*.com/具体网址格式就是这样的但是为了安全起见,我就这样打码了.抛