在 VBScript 上编写宏以在给定的两个 CATIA 曲面中查找最近的两个点时,我遇到了一些困难。如果我能找到一个预定义的 CATIA 函数或一个算法来做同样的事情,那就太好了。
问问题
737 次
1 回答
0
不是一个简单的算法。
将您的 3D 空间划分为 X 方向 10 个单位,Y 方向 10 个单位,Z 方向 10 个单位。您现在拥有一个包含 1000 个小立方体的 3D 空间。分析空间中的每个立方体。表面#1 是否穿过那个立方体?Surface #2 是否穿过那个立方体?如果是这样,请记录下来。这个工作空间的每个立方体可以没有表面交叉,两个表面交叉或表面#1 或#2 的交叉。
如果任何立方体的两个表面都交叉,则下一步。
再次(递归地)在每个方向上除以 10 个单位并再次进行分析。(ETC...)
在某些时候,您将拥有一个 3D 空间,其中没有细分的立方体有两条曲线穿过它。通过分析程序运行以确定具有表面交叉的立方体之间的距离。您应该能够找到相距最小距离的两个立方体。
使用持续递归和细分来优化解决方案。
注意:如果您使用的是 JavaScript,那么像 Sylvester.js 这样的库非常适合解决这个问题。
于 2015-06-22T06:44:02.003 回答