【发布时间】:2020-10-15 01:32:03
【问题描述】:
我必须解决距离问题,我很不高兴,因为我不知道该怎么做,尽管我已经尝试了我在网上找到的几乎所有东西......这是我的问题:
我在汽车行业工作,我们使用镶嵌数据(如 STL,在我的例子中是 JT 格式)。我有一个零件需要焊接。我有焊点的坐标。为确保焊点位置正确,我想计算焊点是否撞击零件,换句话说,我想检查焊点是否与零件碰撞。如果是,则可以焊接该零件。否则焊点会在空中,无法焊接。因此,我想计算零件(基本上是上述格式的一组三角形或多边形)与点之间的距离。如果到其中一个三角形的距离小于给定的焊点半径,则一定存在碰撞,因此焊点定位正确并且可以焊接。
非常感谢您提供操作方法、伪代码或任何有用的东西。我正在使用 JTOpen Toolkit 在 C++ 中进行编码。请注意,该点不一定必须位于三角形内。也许一个示例可以帮助您和我理解问题/答案(以下示例中没有冲突):
设 v1、v2、v3 为三角形的顶点,px、py、pz 为焊点的坐标(半径 1.8)。我也得到每个顶点的法线(n1,n2,n3),但我不知道如何处理它们......
v1x = -273.439
v1y = -787.775
v1z = 854.273
v2x = -274.247
v2y = -788.085
v2z = 855.244
v3x = -272.077
v3y = -787.864
v3z = 855.377
px = 140.99
py = -787.78
pz = 458.93
n1x = -0.113447
n1y = 0.97007
n1z = 0.214693
n2x = -0.113423
n2y = 0.970069
n2z = 0.214712
n3x = -0.110158
n3y = 0.969844
n3z = 0.217413
提前谢谢你!
【问题讨论】:
-
那么如果焊点在三角形的内部或1.8的距离之内,那么你必须焊接吗?如果没有,什么都不做?
标签: computational-geometry euclidean-distance tessellation