平面三点定位算法

javascript版:

 1 //平面三点定位算法
 2 function locate(x1, y1, x2, y2, x3, y3) {
 3     var a, b;
 4     a = (y2 - y1) / (x2 - x1);
 5     b = y1 - a * x1;
 6 
 7     var xMiddle = (x1 + x2) / 2;
 8     var yMiddle = (y1 + y2) / 2;
 9     var c, lastX, lastY;
10     if (a != 0) {
11         c = yMiddle - (-1 / a) * xMiddle;
12         lastX = (Math.pow(x1, 2) + Math.pow(y1, 2) - Math.pow(x3, 2) - Math.pow(y3, 2) - 2 * c * y1 + 2 * c * y3) / (2 * ((x1 - x3) - (1 / a) * (y1 - y3)));
13         lastY = (-1 / a) * lastX + c;
14     } else {
15         lastX = c = xMiddle;
16         lastY = (Math.pow(x1, 2) + Math.pow(y1, 2) - Math.pow(x3, 2) - Math.pow(y3, 2) + 2 * lastX * (x3 - x1)) / (2 * (y1 - y3));
17     }
18     console.log("定位点X坐标: " + lastX);
19     console.log("定位点Y坐标: " + lastY);
20 }
21 locate(116.3, 39.9, 115.8, 39.8, 117, 39.5);

 

posted @ 2016-03-23 17:13  fengzhongye  阅读(2672)  评论(2)    收藏  举报