用于程序化 3D 场景构建的 Python 网络应用程序

问题描述

我目前正在开发一个 Django 应用程序,允许学生以编程方式开发 SVG 图形。他们可以使用 ACE 编辑器在浏览器中编写 Python 代码代码在服务器上执行,存储在数据库中,生成的 SVG(自定义库)返回并显示显示填充椭圆的示例代码如下所示:

graph.draw(Circle(cx=0,cy=0,r=20,fill="lime").scale(2,1)

现在我想知道如何扩展这个应用程序来做一些 3D。我偶然发现了 x3dom,它看起来很有前途并且不太难生成,我可以为此编写另一个轻量级的 pythonic 库。但是,它似乎没有做 CSG(构造立体几何),这是主要缺点。

对于某些允许使用服务器端 python 轻松生成 3D 场景并实现 CSG 的 3D Web 技术,我应该朝哪个方向进行调查?

注意:OpenjsCad 与我想要实现的目标相似,只是我的解决方案允许课堂协作,并且它必须向学生展示 Python 作为编程语言。目的是用图形为 Python 编程教学增添趣味。

解决方法

我相信我曾经用过three.js来做CSG。以前网上有个例子。 X3D 不做 CSG 是对的。我正在做地球的横截面,并找到了一种使用 X3D 的方法。如果您担心 Python 无法在浏览器中运行,您或许可以在浏览器中使用 VPython 或 brython。我只用 brython 测试过别人的项目,根本没有测试过 vpython。

如果您正在做诸如 inverseCSG 或 CSGNet 之类的事情,您的课程是否在线?

换句话说,也许可以尝试找到一个执行 CSG 的 Python 库,而不是在 JS 中搜索渲染引擎。不要将浏览器视为仅限于 JS。

我找的时候只找到了three.js。

也许寻找一个不是固体溶液的溶液。

,

尝试检查python的库“trimesh”,它主要中继防水stl文件,但允许您对CSG进行一些布尔运算。您可以从另一个文件中减去一个文件,扩展并找到交集。此外,它还有一些直接的原始函数,如圆柱体和球体。