我目前正在开发一个Django应用程序,它允许学生以编程方式开发SVG图形。他们可以使用ACE编辑器在浏览器中编写Python代码。代码在服务器上执行,存储在数据库中,生成的SVG (定制库)返回并显示。显示实心椭圆的示例代码如下所示:
graph.draw(Circle(cx=0, cy=0, r=20, fill="lime").scale(2, 1)
现在我在想,我如何才能扩展这个应用程序来做一些3D操作。我偶然发现了X3Dom,它看起来很有前途,而且不太难生成,我可以为此编写另一个轻量级pythonic库。但是,它似乎不支持CSG (构造性立体几何),这是它的主要缺点。
我应该向哪个方向研究一些3D web技术,以便使用服务器端python轻松生成3D场景并实现CSG,有什么提示吗?
注意: OpenJSCad与我想要实现的目标相似,除了我的解决方案允许课堂协作,而且它必须将Python语言作为编程语言向学生公开。其目的是用图形来丰富Python编程的教学。
发布于 2021-05-19 07:45:50
我记得前段时间我用three.js做过CSG。网上曾经有过一个例子。你说得对,X3D不做CSG。我正在做地球的横截面,并找到了一种使用X3D的方法。如果你担心VPython不能在浏览器中运行,你可以在浏览器中使用Python或brython。我只对别人的项目进行了一小段时间的brython测试,vpython根本没有。
如果你正在做像inverseCSG或CSGNet这样的事情,你的课程可以在线上吗?
换句话说,也许可以尝试找到一个执行CSG的Python库,而不是在JS中搜索渲染引擎。不要将浏览器视为仅限于JS。
我只是在找的时候发现了three.js。
也许寻找一种不是固体溶液的解决方案。
发布于 2021-05-20 00:35:57
尝试查看python的库"trimesh“,它主要依赖于无懈可击的stl文件,但允许您对CSG执行一些布尔操作。您可以将一个文件与另一个文件相减,扩展并找到交叉点。此外,它还直接具有一些原始函数,如柱面和球面。
https://stackoverflow.com/questions/65426061
复制相似问题