有没有办法在 JavaFX 3D 对象之间执行布尔运算,例如并集、交集和差集,例如在 Sphere 实例、Cylinder 实例和 Box 实例之间。
从 Shape 类继承的 JavaFX 2D 对象已经具有 union() 和 minus() 方法http://docs.oracle.com/javase/8/javafx/api/javafx/scene/shape/Shape.html
我想知道 JavaFX 或 F(X)yz 库中是否有 Shape3D 对象这样的东西。如果没有,我很想知道实施这些操作的最佳方法。
亲切的问候,
正如 @jdub1581 所说,在 JavaFX 中没有直接的方法来使用 3D 原始形状进行布尔运算。
如果您知道或提供网格信息,这并不意味着无法执行这些操作。
而 F(X)yz 库有许多复杂的 3Dshapes,在完全提供网格信息的情况下,它不会对它们执行布尔运算。
3D 布尔运算是构造立体几何技术。 CSG 实体是使用布尔运算(并集、交集、差集)从多个基元(立方体、棱柱、球体、圆柱体、圆锥体和环面)构造而成。
该技术有一个基于 Java 的实现,JCSG。来自他的作者迈克尔·霍弗(Michael Hoffer):
基于 BSP 的 CSG(构造实体几何)的 Java 实现。这是我所知道的唯一简单且免费的 Java 实现。该实现使用基于优化的CSG算法csg.js.
基于该实施,JFXScad是一个基于 JavaFX 的项目,使用 JCSG 创建复杂的形状,准备进行 3D 打印或导出为 STL/OBJ。
使用此项目,您可以在左侧面板上键入内容,并在右侧面板上生成 3D 形状。这是可用示例之一:
正如你所看到的,几个手臂是通过挤压创建的,并与Cylinder
s using union
, difference
, ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)