我不确定如何解决以下问题:
我有一个三角形,三个已知的顶点位置A,B,C中的每一个都是不准确的,这意味着它们每个都可以向任意方向偏离某个已知半径rA,rB,rC。
给定这样的三角形,我想计算在最坏的情况下三角形的两个特定边长的差异(例如边缘a和边缘b的长度之间的差异)可以改变多少。对这个问题有什么优雅的数学解决方案吗?我想到的天真的方式是计算所有360 ^ 3角度组合并测量每种情况的边缘差异,这是一个相当高的开销。
答案 0 :(得分:4)
下图说明了解决方案:
MinMaxEdgeDiff.png http://www.freeimagehosting.net/uploads/b0f0f84635.png
需要注意的一些要点:
最大和最小的差异是:
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的边界圆仅改变一个角度来迭代地(并且单独地,因为它们彼此独立)被发现。
我怀疑有一个分析解决方案。这是一个有趣的问题,但还不足以让我反对这项特殊任务。抱歉。 ; - )