α-shapes的具体算法流程如下:
①从点集PS中任意选择一点P1开始,将与之距离小于2×α的点组成的新的点集PS2 如示意图4.3左图中的所有点,从PS2中任意选取一点P2 ,利用公式(4.1)和(4.2)求出过P1、P2 点的圆心P12。
②遍历点集PS2,依次求出(P1、P2 除外)其它点到P12的距离D:
a.如果求出的所有D均大于半径α,如示意图4.3(a)中的上方两圆,其内没有其他点,则可以判断出点P1和P2 是边缘轮廓点,P1 P2 是边界线段;
b.如果当求出的D中有小于半径α的值时,如图4.3(a)中的下方两圆,在圆内有其他点,则可以判断不是边缘轮廓点,停止遍历,转到③。
③选择PS2中的下一个点按步骤①、②进行判断,直到PS2中的全部点全部判断结束。
④取PS 中下一个点按步骤①、②、③进行判断,直到PS中的全部点判断结束。
当上述步骤运算结束后,离散点集PS的边缘轮廓点就被检测出来了,如图4.3(b)可以看出