算法总体上是分别对重力场、惯导航迹进行三角剖分后,得到两个立体图形,分别将其划分为较小的部分,进行图形的匹配。
一、三角剖分
(惯导航迹的三角剖分与重力场的三角剖分过程相同)
其中:
①经纬度坐标转换为投影坐标:
符合以下公式:
式中,为椭球体长半轴,为椭球体短半轴,为第一偏心率,为第二偏心率,为卯酉圈曲率半径,为标准纬度,为原点纬度,为原点经度。
②重力异常值转换:重力场采样点的重力异常G转换为高度Z值。
n为重力场采样点数量。
③三角剖分算法:
平面点集三角剖分的基本算法:
输入:平面上个点的坐标,,该点集记为。
输出:个点的三角剖分链表
。
步1 求个点的凸壳顶点,设为。
if then 三角剖分凸多边形,输出结果。终止。
else 求的凸壳顶点,设为。继续下去,直至求得。内不含中的点,包含中的一个点或两个点,分别转至步2、步6和步8。
步2 求的直径,设是的直径。
步3 if 中有个点共线(不在线上)
then 连接与线上各点,转步9。
else if
then 连接与,删去点,输出。
else 连接与,删去点,输出。
if
then 连接与,删去点,输出。
else 连接与,删去点,输出。
步4 ,记为。
步5 求的直径,设是的直径,分别以,代替,,重复步3、步4、步5,直至分割完毕。转步9。
步6 设内含一个点。各顶点与连接,并按连线长度排序,,其中最大。
步7 依次以为顶点,并当时,用步3至步5(步5改为求的剩余顶点与的最大距离)的方法(此时不考虑)进行分割,直至为止。转步9。
步8 设内含两个点,,连接与。中位于右侧的点,设为,连接与,与(与不相交)。成一凸壳,用步2至步5的方法分割该凸壳。
if 在的延长线上
then 连接与,同样处理中位于左侧的点。转步9。
步9
步10 分割与之间的环域。求中位于边右侧的点链(逆时针方向),分别连接边与链的两个端点,构成凸壳,用步2至步5的方法分割该凸壳。同样方法处理环域的其他区域。
步11 ,转步10,直至。转步13。
步12 设与是两个有一条公共边的三角形。
if 与交于两个三角形的外部
then 不改变原来的三角剖分
else if 与交于两个三角形内部
then 连接与,删去线段,称为对角线转换。
步13 对以中的边(或已变动的边)为公共边的三角形对,用步12的方法检查是否需要改变原有的三角剖分。然后,沿的各条边(或已变动的边)寻找两个有公共边的三角形对,并用步12的方法检查是否需要改变原来的三角剖分,直至所有凸壳的边检查完。终止。
二、总体流程
找匹配三角形的算法:
(d 还没确定)