千家信息网

利用python画出月亮和月饼代码实例

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要介绍"利用python画出月亮和月饼代码实例",在日常操作中,相信很多人在利用python画出月亮和月饼代码实例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2024年09月21日利用python画出月亮和月饼代码实例

这篇文章主要介绍"利用python画出月亮和月饼代码实例",在日常操作中,相信很多人在利用python画出月亮和月饼代码实例问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"利用python画出月亮和月饼代码实例"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • 一、?月亮

  • 二、?雪花月饼

一、?月亮

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

from mpl_toolkits.mplot3d import Axes3Dimport matplotlib.pyplot as pltimport 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 turtleimport 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 = 5koch(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画出月亮和月饼代码实例"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0