Algorithm 计算不准确的三角形顶点位置对三角形边长度的潜在影响

Algorithm 计算不准确的三角形顶点位置对三角形边长度的潜在影响,algorithm,trigonometry,Algorithm,Trigonometry,我不知道如何解决以下问题: 我有一个三角形,三个已知的顶点位置a,B,C都不准确,这意味着它们都可以偏离某个已知半径rA,rB,rC到任意方向 给定这样一个三角形,我想计算在最坏的情况下三角形的两个特定边长度的差(例如边a和边b的长度之间的差)可能会改变多少。这个问题有没有优雅的数学解决方案 我认为最简单的方法是计算所有360^3角度组合,并测量每种情况下的边缘差异,这是一个相当高的开销。下图说明了解决方案: 需要注意的几点: 直线段AC1和BC1表示| BC |-| AC |的最大可能值,而

我不知道如何解决以下问题:

我有一个三角形,三个已知的顶点位置a,B,C都不准确,这意味着它们都可以偏离某个已知半径rA,rB,rC到任意方向

给定这样一个三角形,我想计算在最坏的情况下三角形的两个特定边长度的差(例如边a和边b的长度之间的差)可能会改变多少。这个问题有没有优雅的数学解决方案


我认为最简单的方法是计算所有360^3角度组合,并测量每种情况下的边缘差异,这是一个相当高的开销。

下图说明了解决方案:

需要注意的几点:

  • 直线段AC1和BC1表示| BC |-| AC |的最大可能值,而直线AC2和BC2表示最小可能值。在C1处,与圆的切线必须将AC1和BC1形成的角度平分;C2也是如此
  • AC1(当通过虚线延伸时)和AC2都经过A。同样,BC1和BC2也经过B。任何偏离中心的情况下,这些线的长度将最大或最小
  • 最大和最小的差异是:

    d1 = |BC1| - |AC1| = (|B->C1| + _rB_) - (|A->C1| - _rA_)
                       = |B->C1| - |A->C1| + (_rA_ + _rB_)
    
    d2 = |BC2| - |AC2| = (|B->C2| - _rB_) - (|A->C2| + _rA_)
                       = |B->C2| - |A->C2| - (_rA_ + _rB_)
    
    因此,最大和最小差异之间的变化为:

    d1 - d2 = (|B->C1| - |A->C1|) - (|B->C2| - |A->C2|) + 2*(_rA_ + _rB_)
    
  • 最后一点提示,可以通过从中心A和B求解,然后添加半径rA和rB来找到解决方案。因此,C1和C2的位置可以通过围绕C的边界圆仅改变一个角度来迭代地发现(并且是分开的,因为它们彼此独立)


    我怀疑有一个解析解。这是一个有趣的问题,但还不足以让我对这项特殊任务感到头疼。对不起.-)

    46656000计算,你一生只需要做一次,听起来一点也不高。非常感谢你的说明性和详细的答案!我完全忽略了最后一点!没问题,@stingrey。顺便说一句,我已经稍微修正了数学(没什么大不了的;我只是在减法中交换了d1和d2,以更好地匹配讨论)。我在Mac中使用了LineForm。这是一个粗糙、简单的工具,但适合于快速、肮脏的插图。