新闻动态

中秋快到了利用python画个月亮和月饼

发布日期:2022-01-03 13:46 | 文章来源:CSDN

一、🌕月亮

导入库matplotlibnumpy,作为工具直接用。

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)

效果图!啊哈哈哈!是雪花月饼呀!

到此这篇关于中秋快到了利用python画出月亮和月饼的文章就介绍到这了,更多相关用python画出月亮和月饼内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

最后,希望我的中秋礼品能带给你一丝的欢喜~

提前祝中秋快乐鸭~

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部