【问题标题】:Simple 3D Graphics in PythonPython 中的简单 3D 图形
【发布时间】:2023-03-29 15:08:01
【问题描述】:

我在一个项目中工作,其中 3D 可视化对于查看设置阶段正在发生的事情很重要,并且可能通过制作正在发生的事情的短视频来进行视觉验证。

我遇到的问题是 Python 中的 3D 可视化太复杂了,而且对于我需要的东西来说学习起来很复杂。我发现 Mathematica 是一种完美的软件……但它不便携而且非常昂贵。

问题

有没有类似 Mathematica 的 Python 包?

澄清

我不想要一个“绘图”程序,因为绘图不是我想要的。我想生成简单的几何形状,比如可以移动的球体和立方体,这已经足够了。给出一些坐标,也许是旋转,程序只显示所需的图像以导出为 .png 或制作快速视频;就像在数学中一样。

像 Pygame、Panda3D、Pyglet 等软件包,看起来太复杂了,而且对于我需要的东西来说太过分了,还有 Blender 等软件。Jupyter notebook 类似,但它们没有 3D 图形功能。我找到了一个名为 Fresnel 的 Python 模块,但它看起来太复杂了,无法满足我的需要。

我已经在 Stack Overflow 中阅读了这个问题的几个答案,但它们似乎已经过时,并不是我真正想要的。

进一步说明

要在 Mathematica 中绘制球体,您可以:
coordinates = Flatten[Table[Table[Table[ {i,j,k}, {k,1,10}], {j,1,10}], {i,1,10}],1]
spheres= Flatten[Table[Graphics3D[{Sphere[coordinates[[i]],0.5]}],{i,1,Length[coordinates]}]]
Show[{spheres}]

这是一种显示一组球体的简单快捷方式。要使用 Python 中的任何程序来做同样的事情,看起来你必须是 3D 图形方面的专家才能做这个简单的事情。

具有使用 Python 脚本功能的程序,如 Blender,很难直接使用界面(尝试在 Blender 中做同样的事情,学习基础知识需要一段时间!)。

【问题讨论】:

  • vpython vpython.org ?
  • 你能举例说明你想要什么吗?
  • Blender 可能有点矫枉过正,因为它可以做的比你想要的要多。但是对于你所说的,即使是初学者水平的熟练程度,你也可以在几秒钟内在搅拌机中做到这一点
  • @Epsi95,谢谢。看起来像一个简单而好的程序。从来没有听说过。打算试一试。
  • @Alderven,如果您需要,我提供了一个示例。提前致谢。

标签: python graphics 3d simulation


【解决方案1】:

我知道除了 matplotlib 之外的其他几个用户友好的绘图库,但提供交互式视图的并不多。当然有众所周知的vtk,但它不适合最终用户

情节

如果要在笔记本中使用,例如 jupyter 和 mathematica,您可能会选择 plotly 它使用基于浏览器的界面,其绘图与 mathematica 非常相似

pymadcad

如果您需要更离线的版本并且您正在寻找一些可以旋转/缩放/平移以从不同侧面查看几何图形的视图,您可以查看pymadcad 它甚至适用于触摸屏。 它不是以 3D 可视化为中心的,所以只为它使用它有点矫枉过正,但对于你所说的 3D 曲线、3D 曲面、球体和立方体,它可以完成这项工作

pymadcad 的简单绘图:

from madcad import *
from madcad.rendering import Displayable
from madcad.displays import GridDisplay

# create a wire from custom points
s = 100
mycurve = Wire([  vec3(sin(t/s), cos(t/s), 0.1*t/s)
                  for t in range(int(s*6*pi)) ])

# create a sphere
mysphere = uvsphere(vec3(0), 0.5)

# display in a separated window
show([
       mycurve,   # displaying the curve
       mysphere,  # displaying the sphere
       Displayable(GridDisplay, vec3(0)),   # this is to have a 2D grid centered on origin
       ])

结果: (窗口是暗的,因为我的系统主题也是如此,但它可能会适应你的)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 2016-08-14
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多