中秋快到了利用python画个月亮和月饼
作者:小生凡一 时间:2021-09-16 13:55:51
目录
一、🌕月亮
二、🌕雪花月饼
一、🌕月亮
导入库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
标签:python
0
投稿
猜你喜欢
SQL Server 2008 到底需要使用哪些端口?
2012-11-30 20:29:41
Python使用time模块实现指定时间触发器示例
2022-05-13 02:57:59
PHP children()函数讲解
2023-06-13 04:38:38
Mootools常用方法扩展(四)
2009-02-21 11:12:00
对numpy下的轴交换transpose和swapaxes的示例解读
2022-09-11 10:30:51
Django实现分页显示效果
2021-12-04 14:01:37
python 实现GUI(图形用户界面)编程详解
2023-10-05 15:11:34
Python双链表原理与实现方法详解
2023-10-10 20:55:40
捕捉并保存ASP运行错误的函数代码
2012-11-30 20:24:43
python使用smtplib模块发送邮件
2023-05-16 22:25:38
pyhton列表转换为数组的实例
2021-01-12 08:14:31
Python pandas 重命名索引和列名称的实现
2023-11-10 13:31:04
JavaScript文档生成工具
2007-10-26 11:59:00
基于python分享一款地理数据可视化神器keplergl
2023-09-27 20:54:05
详解 Python中LEGB和闭包及装饰器
2023-05-19 00:16:41
详解用python自制微信机器人,定时发送天气预报
2023-05-12 14:27:29
对pandas的dataframe绘图并保存的实现方法
2021-12-21 14:54:50
jsp+servlet简单实现上传文件功能(保存目录改进)
2023-07-20 17:57:07
Python 操作Excel-openpyxl模块用法实例
2021-01-20 09:29:34
一波神奇的Python语句、函数与方法的使用技巧总结
2023-05-12 19:48:41