Python - Matplotlib 绘制 3D 圣诞树

这篇具有很好参考价值的文章主要介绍了Python - Matplotlib 绘制 3D 圣诞树。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

 文章来源地址https://www.toymoban.com/news/detail-811761.html

前言

转自:How to draw a 3D Christmas Tree with Matplotlib | by Timur Bakibayev, Ph.D. | Analytics Vidhya | Mediumhttps://medium.com/analytics-vidhya/how-to-draw-a-3d-christmas-tree-with-matplotlib-aabb9bc27864

因为我们把圣诞树安装在暖气电池旁边,所以它很快就死了。所以我决定用 Matplotlib 绘制一棵圣诞树。你不需要为它遮阳避暑,它也不需要任何水。在阿瑞克斯星球,水的供应是有限的。地球上也是如此。 


 

一、步骤

1.1 

要在 matplotlib 中绘图,我们需要将其包含在内。

此外,我们还要为 3D 准备所有库。

import math
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")

 让我们先画一个 3D 圆,确保一切正常。

fig = plt.figure()
ax = fig.add_subplot(111, projection="3d")
k=300
Z = [10 for i in range(k)]
X = [math.cos(i/10) for i in range(k)]
Y = [math.sin(i/10) for i in range(k)]
ax.scatter(X,Y,Z, c="green", marker="^")
plt.show()

Python - Matplotlib 绘制 3D 圣诞树,matplotlib,python,人工智能,深度学习,c++,机器人,开发语言

不错!这是非常标准的。我们现在只修复 Z 坐标。

现在,应用 Z 坐标使其 3D 化。

Z = [i for i in range(k)]

 

Python - Matplotlib 绘制 3D 圣诞树,matplotlib,python,人工智能,深度学习,c++,机器人,开发语言

让我们在顶部缩小圆的半径。

Z = [i for i in range(k)]
X = [math.cos(i/5)*(k-i) for i in range(k)]
Y = [math.sin(i/5)*(k-i) for i in range(k)]

Python - Matplotlib 绘制 3D 圣诞树,matplotlib,python,人工智能,深度学习,c++,机器人,开发语言

 Matplotlib 总是倾向于贴合图形,只需在此处添加这些限制即可:

 

plt.xlim(-500,500)
plt.ylim(-500,500)

 

Python - Matplotlib 绘制 3D 圣诞树,matplotlib,python,人工智能,深度学习,c++,机器人,开发语言

 画一些红圈。它们的公式相同,但步长更大。我们还通过在 sin 和 cos 参数上加 2 来移动它,这样它们就不会与树本身相交。

k=300
Z = [i for i in range(k)]
X = [math.cos(i/5)*(k-i) for i in range(k)]
Y = [math.sin(i/5)*(k-i) for i in range(k)]
ax.scatter(X,Y,Z, c="green", marker="^")
k=300
step = 4
Z = [i for i in range(1,k,step)]
X = [math.cos(i/5+2)*(k-i+10) for i in range(1,k,step)]
Y = [math.sin(i/5+2)*(k-i+10) for i in range(1,k,step)]
ax.scatter(X,Y,Z, c="red", marker="o")
plt.xlim(-500,500)
plt.ylim(-500,500)
plt.show()

Python - Matplotlib 绘制 3D 圣诞树,matplotlib,python,人工智能,深度学习,c++,机器人,开发语言

 微调装饰

c = [(i/k,abs(0.5-i/k),i/k) for i in range(1,k,step)]
ax.scatter(X,Y,Z, c=c, marker="o",s=40)

Python - Matplotlib 绘制 3D 圣诞树,matplotlib,python,人工智能,深度学习,c++,机器人,开发语言

要旋转树形图,我们需要为每一帧绘制树形图,并在 sin 和 cos 参数中添加一些常数。

我们为初始图形和每一帧复制代码。

import math
import matplotlib.pyplot as plt
from matplotlib import animation
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111, projection="3d")
def init():
    k=300
    Z = [i for i in range(k)]
    X = [math.cos(i/5)*(k-i) for i in range(k)]
    Y = [math.sin(i/5)*(k-i) for i in range(k)]
    ax.scatter(X,Y,Z, c="green", marker="^")
    step = 3
    c = [(i/k,abs(0.5-i/k),i/k) for i in range(1,k,step)]
    Z = [i for i in range(1,k,step)]
    X = [math.cos(i/5+2)*(k-i+10) for i in range(1,k,step)]
    Y = [math.sin(i/5+2)*(k-i+10) for i in range(1,k,step)]
    ax.scatter(X,Y,Z, c=c, marker="o",s=40)
    plt.xlim(-500,500)
    plt.ylim(-500,500)
    return fig,
def animate(f):
    fig.clear()
    ax = fig.add_subplot(111, projection="3d")
    k=300
    Z = [i for i in range(k)]
    X = [math.cos(i/5+f/10)*(k-i) for i in range(k)]
    Y = [math.sin(i/5+f/10)*(k-i) for i in range(k)]
    ax.scatter(X,Y,Z, c="green", marker="^")
    step = 3
    c = [(i/k,abs(0.5-i/k),i/k) for i in range(1,k,step)]
    Z = [i for i in range(1,k,step)]
    X = [math.cos(i/5+2+f/10)*(k-i+10) for i in range(1,k,step)]
    Y = [math.sin(i/5+2+f/10)*(k-i+10) for i in range(1,k,step)]
    ax.scatter(X,Y,Z, c=c, marker="o",s=40)
    plt.xlim(-500,500)
    plt.ylim(-500,500)
    return fig,
ani=animation.FuncAnimation(fig, animate, init_func=init,
                               frames=90, interval=50, blit=True)
ani.save("christmas_tree.mp4")

 这就是结果:

Python - Matplotlib 绘制 3D 圣诞树,matplotlib,python,人工智能,深度学习,c++,机器人,开发语言

 

不要忘记与您的朋友分享这棵树!

新年快乐

点击此处查看我的其他文章:timurbakibayev.medium.com

timurbakibayev.medium.comhttp://timurbakibayev.medium.com/

 

 

 

到了这里,关于Python - Matplotlib 绘制 3D 圣诞树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用HTML写一段3D动态圣诞树代码

    你好! 这是一段用HTML写的3D动态圣诞树的代码: 这段代码会创建一个500x500像素的3D圣诞树,树干是棕色的,树枝是绿色的。树干和树枝会不断旋转360度,形成动画效果。希望这能帮到你!

    2024年02月03日
    浏览(60)
  • 圣诞节怎么能缺少圣诞树呢?Python+HTML打造专属于你的圣诞树

    前言: 美酒一杯让人醉,温馨陪伴浪漫随;雪花片片惹人爱,烦恼忧伤全不见;字里行间藏真情,文短情深送心愿:圣诞佳节快来到,祝大家永远开心幸福! Hello大家好,我是Dream。 圣诞节马上到了,一些朋友问我想送女朋友和男朋友们圣诞节礼物,但是也没想到啥好点子,作为

    2024年02月02日
    浏览(70)
  • python系列之(大家圣诞快乐)圣诞树

    2022年圣诞节到来啦,很高兴这次我们又能一起度过~, 圣诞节源自古罗马人迎接新年的农神节,与基督教本无关系。在基督教盛行罗马帝国后,教廷将这种民俗节日纳入基督教体系,同时以庆祝耶稣的降生。但在圣诞节这天不是耶稣的生辰,因为《圣经》未记载耶稣具体出生

    2024年02月04日
    浏览(56)
  • Python 圣诞树代码

    1.本章将会讲解Python编程 实现圣诞树效果! 2.圣诞节介绍 基督教纪念耶稣诞生的重要节日。亦称耶稣圣诞节、主降生节,天主教亦称耶稣圣诞瞻礼。耶稣诞生的日期,《圣经》并无记载。公元336年罗马教会开始在12月25日过此节。12月25日原是罗马帝国规定的太阳神诞辰。有人

    2024年02月03日
    浏览(70)
  • Python圣诞树代码

    2024年02月04日
    浏览(58)
  • python圣诞树代码编程

    以下是一个简单的Python圣诞树代码: def draw_tree(height):     for i in range(height):         print(\\\' \\\' * (height - i - 1) + \\\'*\\\' * (2 * i + 1))     print(\\\' \\\' * (height - 1) + \\\'|\\\') draw_tree(10) 这个函数会绘制一个等腰三角形,其中每一行的星号数量从1开始,每次递增2,空格数量则相反,从等腰三

    2024年02月05日
    浏览(69)
  • 用Python画圣诞树

    我们的目标是将代码和素材全部隐藏起来,只需要双击一下鼠标就能自动带着BGM开始画圣诞树。 (这是电脑桌面上的一个文件,只需要双击一下,代码就会在后台自动运行了) (一秒后,就会看到弹出界面开始画圣诞树了,并且自动播放背景音乐哦) (再然后,就能看到画

    2023年04月18日
    浏览(61)
  • Python生成高级圣诞树-代码案例剖析【第16篇—python圣诞节系列】

    这段代码是使用turtle库创建一个图形界面,绘制了一组彩色的正方形和圆形,最终呈现出一幅图案。以下是对代码的解析: 屏幕=。屏幕() :创建了一个Turtle屏幕对象。 screen.setup(375, 700) :设置屏幕大小为375x700像素。 圆圈=。() :创建了一个Turtle对象,命名为circle。 c

    2024年02月03日
    浏览(82)
  • python-turtle(海龟绘图)圣诞树

    1.在开始前需要引入turtle库,若没有下载这个库可以复制下面这条语句在PyCharm终端下载   2.turtle库,它这个画笔是在这个窗口横轴x轴,纵轴y轴从原点(0,0)处开始,以函数指令使其移动绘图。  最近今天持续发烧,没来得急上传,赶一波末班车嘻嘻

    2024年02月03日
    浏览(180)
  • 用python画一颗会动的圣诞树

    要用 Python 画一棵会动的圣诞树,你可以使用 Python 的图形库来实现。比如说可以使用 Tkinter、pygame 等库。 这里以 Tkinter 为例,给出一个简单的代码示例: 在这段代码中,我们首先使用 Tkinter 库创建了一个窗口和一个画布,然后使用画布的 create_polygon 方法在画布上画出了一棵

    2024年02月03日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包