已知平面三点坐标A(x1, y1)、B(x2, y2)、C(x3, y3),三点定圆也就是三角形的中垂线交点,

//平面三点定位算法
function locate(x1, y1, x2, y2, x3, y3) {
var a, b;
a = (y2 - y1) / (x2 - x1);
b = y1 - a * x1; var xMiddle = (x1 + x2) / 2;
var yMiddle = (y1 + y2) / 2;
var c, lastX, lastY;
if (a != 0) {
c = yMiddle - (-1 / a) * xMiddle;
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)));
lastY = (-1 / a) * lastX + c;
} else {
lastX = c = xMiddle;
lastY = (Math.pow(x1, 2) + Math.pow(y1, 2) - Math.pow(x3, 2) - Math.pow(y3, 2) + 2 * lastX * (x3 - x1)) / (2 * (y1 - y3));
}
console.log("定位点X坐标: " + lastX);
console.log("定位点Y坐标: " + lastY);
}
locate(116.3, 39.9, 115.8, 39.8, 117, 39.5);
locate(7,8, 7,23, 20,10);

三角形垂点坐标js算法(三点定圆求圆心)的更多相关文章

  1. HDU 6206 Apple ( 高精度 && 计算几何 && 三点构圆求圆心半径 )

    题意 : 给出四个点,问你第四个点是否在前三个点构成的圆内,若在圆外输出"Accepted",否则输出"Rejected",题目保证前三个点不在一条直线上. 分 ...

  2. JS算法练习三

    JS算法练习 1.生成一个长度为10的随机数组,使用冒泡法给数组排序 var arr=new Array(10); for (var i = 0; i <arr.length ; i++) { ...

  3. js算法集合(一) 水仙花数 及拓展(自幂数的判断)

    js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法, ...

  4. js算法集合(二) javascript实现斐波那契数列 (兔子数列)

    js算法集合(二)  斐波那契数列 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列进行研究,来加深对循环的理解.     Javascript实 ...

  5. js算法初窥03(简单搜索及去重算法)

    前面我们了解了一些常用的排序算法,那么这篇文章我们来看看搜索算法的一些简单实现,我们先来介绍一个我们在实际工作中一定用到过的搜索算法--顺序搜索. 1.顺序搜索 其实顺序搜索十分简单,我们还是以第一篇 ...

  6. js算法初窥05(算法模式02-动态规划与贪心算法)

    在前面的文章中(js算法初窥02(排序算法02-归并.快速以及堆排)我们学习了如何用分治法来实现归并排序,那么动态规划跟分治法有点类似,但是分治法是把问题分解成互相独立的子问题,最后组合它们的结果,而 ...

  7. js算法初窥03(搜索及去重算法)

    前面我们了解了一些常用的排序算法,那么这篇文章我们来看看搜索算法的一些简单实现,我们先来介绍一个我们在实际工作中一定用到过的搜索算法——顺序搜索. 1.顺序搜索 其实顺序搜索十分简单,我们还是以第一篇 ...

  8. p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上

     /// <summary>         ///  p点到(a,b)点两所在直线的垂点坐标         /// </summary>         /// <p ...

  9. 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

随机推荐

  1. centos安装Django之一:安装openssl

    这几天在部署Django,需要安装的东西有点多,python3.pip3.openssl(pip依赖ssl环境),所以第一步是安装openssl,如何安装呢?主要有三步,随ytkah一起来看看吧 1. ...

  2. what's the python之异常处理

    what's the 异常 python程序中会出现异常,即bug.若出现异常程序就报错,异常之后的代码就不会继续往下执行,这是一个正常程序不允许出现的,但是在某些程序交互的时候难免会因为用户输入问题 ...

  3. oracle sql小结(主要讲横列转换的例子)decode 以及case

    --建表 create table kecheng( id NUMBER, name VARCHAR2(20), course VARCHAR2(20), score NUMBER); --插入数据i ...

  4. vue中less的使用

    1.安装:npm install less less-loader --save 2.修改webpack.config.js文件,配置loader加载依赖,让其支持外部的less,在原来的代码上添加 ...

  5. Lua搜索特殊字符

    local newtext = "." local index1 = string.find(newtext,"%.") 在这里,"."是通 ...

  6. tf中的run()与eval()【转载】

    转自:https://blog.csdn.net/jiaoyangwm/article/details/79248535  1.eval() 其实就是tf.Tensor的Session.run() 的 ...

  7. 配置Tomcat启用Https安全协议的访问

    1.首先使用keytool工具生成证书文件名为cnkey,然后拷贝此证书即文件到tomcat安装目录conf下(放到哪里都行,主要在下面配置中指明路径就好了.这里我就放这了conf) 2.配置serv ...

  8. 【LeetCode每天一题】Two Sum(两数之和)

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  9. Tensorflow检验GPU是否安装成功 及 使用GPU训练注意事项

    1. 已经安装cuda但是tensorflow仍然使用cpu加速的问题 电脑上同时安装了GPU和CPU版本的TensorFlow,本来想用下面代码测试一下GPU程序,但无奈老是没有调用GPU. imp ...

  10. Dart- move html element

    今天给出一个例程,像是个小游戏!哈哈 一 html //anagram.html <!DOCTYPE HTML> <html> <head> <title&g ...