首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用关联数据计算点到三角形的最短距离

如何利用关联数据计算点到三角形的最短距离
EN

Stack Overflow用户
提问于 2020-06-24 17:44:07
回答 1查看 198关注 0票数 2

我必须解决一个距离问题,我变得非常沮丧,因为我不知道如何做,尽管我已经尝试了几乎所有我在网上找到的.我的问题是:

我在汽车行业工作,我们使用tessellated数据(比如STL,在我的例子中是JT-格式)。我有一个零件需要焊接。我有焊点的坐标。为了确保焊点的位置正确,我想要计算焊点是否击中了零件,或者,换句话说,我想检查焊点是否与零件发生碰撞。如果是,那么零件可以焊接。否则,焊点将在空气中,它不能焊接。因此,我想要计算的部分(基本上是一组三角形或多边形在上述格式)和点之间的距离。如果与其中一个三角形的距离小于焊点的给定半径,则必须发生碰撞,从而使焊点位置正确,并可焊接。

A如何,伪代码或任何可能有用的,将是非常感谢的。我正在c++中使用JTOpen工具包进行编码。请注意,这一点不一定要放在三角形内。也许一个例子可以帮助你和我理解问题/答案(在下面的例子中没有冲突):

设v1,v2,v3为三角形的顶点,px,py,pz为焊点坐标(半径1.8)。我也得到每个顶点的法线(n1,n2,n3),但我不知道该如何处理它们。

代码语言:javascript
复制
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

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-24 19:34:49

三角形相同距离点的轨迹是一个复杂的曲面。

  • 与原始三角形平行的两个三角形,在给定的距离下;

  • 对应于等边距离点的三个半圆柱;

  • 点在顶点等距上的球体。

如果你朝三角形看,你会发现这些表面被

  • 三边三角形,

  • ,在顶点边的六个法线。

因此,要找到给定点的距离,需要将其正交投影到三角形的平面上,并在由半直线和分段划分的7个区域中找到它的位置。通过适当的空间旋转,这一问题可以在2D中得到解决。然后,知道区域,你将使用距离的平面,一个边缘或一个顶点。

请注意,在镶嵌的情况下,必须考虑几个三角形。如果有许多,加速系统将是必要的。这是一个宽泛而又有点技术性的话题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62561003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档