2015-06-22 140 views
-2

在VBScript上编写宏以在给定的两个CATIA曲面中查找最近的两个点时,我遇到了一些困难。如果我能够找到CATIA的预定义函数或算法来执行相同的操作,那就太好了。两条曲线之间的最近点

回答

0

不是一个简单的算法。

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

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

再在每个方向再做10个单位(递归)再做分析。 (等等)

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

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

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

+0

这似乎是一个很好的解决方案,但我正在寻找更好的处理时间的算法。我认为使用数学公式有助于我的情况,因为只有四种类型的曲面(圆弧曲面,线条,矩形曲面和圆弧) – Deepak