2010-11-07 73 views
1

有谁知道如何计算两条给定曲线的中轴?如何计算中轴?

中轴:http://en.wikipedia.org/wiki/Medial_axis

这里是我需要计算它的形状: alt text

我在中轴自己,暗黑色的线画了,但我需要能够计算它动态地。

下面是我迄今所做的小程序和代码: http://www.prism.gatech.edu/~jstrauss6/3451/sample/

已知的变量是: -pt A,B,C,d 的红,绿-radii,黑色圆 -pt Q和R(就在图片的外面),黑色圆圈。

回答

2

C1C2为圆心的圆心r1r2。取得的两个圆的图的中轴(减去两个中心点)是设置点M的满足

|M - C1| - r1 = |M - C2| - r2 

这意味着

|M - C1| - |M - C2| = r1 - r2 
|M - C1|^2 + |M - C2|^2 - (r1 - r2)^2 = 2 * |M - C1||M - C2| 
(|M - C1|^2 + |M - C2|^2 - (r1 - r2)^2)^2 = 4 * |M - C1|^2 |M - C2|^2 (**) 

所以中轴是四分之一程度的代数曲线。

让我们说,C1C2是在y轴上,并且假设点(0,0)位于中轴(所以C1 = (0, -r1 - x)C2 = (0, r2 + x)一些x你可以从你的数据计算)。这是你总能转化成的东西。

现在,您需要参数化中轴的曲线y = f(x)。为此,请选择您所选择的x,然后使用牛顿法求解y中的方程(**),初始猜测为y = 0。这是一个可精确计算的多项式,以及其导数(在y中)。

0

如果将圆圈嵌入矩形网格(思考图像),则可以使用此图像的距离变换来计算您的中轴。看到这个link。 存在几个O(nlogn)算法来计算图像网格上的距离​​图。

1

中轴在这种情况下是hyberbola。

欲了解更多信息,请参阅this article,尤其是下面的摘录:

任何圈的中心外切两个给定界位于双曲线,其焦点是给定圆的中心,并且其中顶点距离2a等于两个圆的半径之差。

因此,考虑到焦点和顶点距离,问题可以归结为绘制双曲线。