gpt4 book ai didi

3d - JavaFX 3D 对象之间的并集、交集和差异

转载 作者:行者123 更新时间:2023-12-01 18:22:45 25 4
gpt4 key购买 nike

有没有办法在 JavaFX 3D 对象之间执行 bool 运算,例如并集、交集和差集,例如在 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 原始形状进行 bool 运算。

这并不意味着这些操作无法执行,只要您知道或提供网格信息。

虽然F(X)yz库有许多复杂的3D shapes ,在完全提供网格信息的情况下,它不会对它们执行 bool 运算。

3D bool 运算是 Constructive Solid Geometry 的基础技术。 CSG 实体是使用 bool 运算(并集、交集、差集)从多个基元(立方体、棱柱、球体、圆柱体、圆锥体和环面)构造而成。

该技术有一个基于 Java 的实现,JCSG 。来自他的作者 Michael Hoffer:

Java implementation of BSP based CSG (Constructive Solid Geometry). It is the only simple and free Java implementation I am aware of. This implementation uses an optimized CSG algorithm based on csg.js.

基于该实现,JFXScad是一个基于 JavaFX 的项目,使用 JCSG 创建复杂的形状,准备进行 3D 打印或导出为 STL/OBJ。

使用此项目,您可以在左侧面板上键入内容,并在右侧面板上生成 3D 形状。这是可用示例之一:

JFXcad

如您所见,通过挤​​压创建了多个臂,并使用uniondifference、...与Cylinder组合在一起

关于3d - JavaFX 3D 对象之间的并集、交集和差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28697842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com