两条曲线之间的最近点

时间:2015-06-22 06:40:58

标签: vba vbscript catia

在VBScript上编写一个宏来查找给定的两个CATIA曲面中最近的两个点时,我遇到了一些困难。如果我能找到CATIA的预定义函数或算法来做同样的事情,那就太好了。

1 个答案:

答案 0 :(得分:0)

不是一个简单的算法。

将3D空间划分为X方向的10个单位,Y方向的10个单位,Z方向的10个单位。您现在拥有一个包含1000个小立方体的3D空间。分析空间中的每个立方体。表面#1是否穿过那个立方体? Surface#2是否穿过那个立方体?如果是这样,请记录下来。该工作空间的每个立方体可以没有表面交叉,两个表面交叉或交叉表面#1或#2。

如果任何立方体都有两个表面交叉,那么下一步就在那里。

再次(递归地)在每个方向上除以10个单位并再次进行分析。 (等...)

在某些时候,您将拥有一个3D空间,其中没有细分立方体的两条曲线都穿过它。通过分析程序运行以确定具有表面交叉的立方体之间的距离。您应该能够找到哪两个立方体相距最小距离。

使用持续递归和细分来优化解决方案。

注意:如果您使用的是JavaScript,那么像Sylvester.js这样的库对于这个问题非常方便。

相关问题