js 求点到直线的距离(由2点确定的直线,求到第三点的距离)
直接上代码,不多说了
var p1={x:100,y:100};//直线上的点p1
var p2={x:200,y:100};//直线上的点p2
var p3={x:0,y:300};//直线外的点p3
//---------------------------------交点坐标
function getJiaoDian()
{
var P={};
//如果p1.x==p2.x 说明是条竖着的线
if(p1.x-p2.x==0)
{
P.x=p1.x;
P.y=p3.y;
}
else
{
var A=(p1.y-p2.y)/(p1.x-p2.x)
var B=p1.y-A*p1.x
var m=p3.x+A*p3.y
P.x=(m-A*B)/(A*A+1)
P.y=A*P.x+B
}
return P
}
//-----------------------------------距离
function getJuLi()
{
var len;
//如果p1.x==p2.x 说明是条竖着的线
if(p1.x-p2.x==0)
{
len=Math.abs(p3.x-p1.x)
}
else
{
var A=(p1.y-p2.y)/(p1.x-p2.x)
var B=p1.y-A*p1.x
len=Math.abs((A*p3.x+B-p3.y)/Math.sqrt(A*A+1))
}
return len
}
另外贴出 判断点在线的左右侧判断方法
判断点p在由p0,p1决定的直线左右侧的公式:
var p0={x:?,y:?},p1={x:?,y:?},p={x:?,y:?}
var key = (p0.y – p1.y) * x + (p1.x – p0.x) * y + p0.x * p1.y – p1.x * p0.y
key > 0 在左侧
key = 0 在线上
key < 0 在右侧
js 求点到直线的距离(由2点确定的直线,求到第三点的距离)的更多相关文章
- hdu 1174:爆头(计算几何,三维叉积求点到线的距离)
爆头 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- Python 求点到直线的垂足
Python 求点到直线的垂足 在已知一个点,和一条已知两个点的直线的情况下 运算公式参考链接:https://www.cnblogs.com/mazhenyu/p/3508735.html def ...
- hdu4454 三分 求点到圆,然后在到矩形的最短路
题意: 求点到圆,然后在到矩形的最短路. 思路: 把圆切成两半,然后对于每一半这个答案都是凸性的,最后输出两半中小的那个就行了,其中有一点,就是求点到矩形的距离,点到矩形的距离 ...
- 知道椭圆长轴,短轴长度,ab直线的长度知道且垂直于长轴。求ab的弧长。
1:知道椭圆长轴,短轴长度,ab直线的长度知道且垂直于长轴.求ab的弦长.: https://jingyan.baidu.com/article/a378c960a5af27b3282830e6.ht ...
- ACM1174_爆头解题思路_空间三维坐标求点到直线的距离
/* 爆头 Description gameboy是一个CS高手,他最喜欢的就是扮演警察, 手持M4爆土匪的头.也许这里有人没玩过CS,有必 要介绍一下“爆头”这个术语:所谓爆头,就是子 弹直接命中对 ...
- poj1584(判断凸包+求点到线段的距离)
题目链接:https://vjudge.net/problem/POJ-1584 题意:首先要判断凸包,然后判断圆是否在多边形中. 思路: 判断凸包利用叉积,判断圆在多边形首先要判断圆心是否在多边形中 ...
- D3.js的基础部分之数组的处理 数组的排序和求值(v3版本)
操作数组 D3提供了将数组洗牌.合并等操作,使用起来是很方便的. d3.shuffle(array,[,lo[,ji]]) : //随机排列数组. d3.merge(arrays) : / ...
- 多项式求逆元详解+模板 【洛谷P4238】多项式求逆
概述 多项式求逆元是一个非常重要的知识点,许多多项式操作都需要用到该算法,包括多项式取模,除法,开跟,求ln,求exp,快速幂.用快速傅里叶变换和倍增法可以在$O(n log n)$的时间复杂度下求出 ...
- 牛顿迭代,多项式求逆,除法,开方,exp,ln,求幂
牛顿迭代 若 \[G(F_0(x))\equiv 0(mod\ x^{2^t})\] 牛顿迭代 \[F(x)\equiv F_0(x)-\frac{G(F_0(x))}{G'(F_0(x))}(mod ...
随机推荐
- python引用py文件中文报错
文件 a.py 中引用文件 b.py 如果文件b.py中包含中文,会报错. 文件hello.py中代码如下: def say_nihao(): print "你好" 文件main. ...
- VSO-Branch和Merge
分支策略 一般采用一个MAIN分支,一个或多个DEVELOPMENT分支的分支结构,如下图(来自:https://msdn.microsoft.com/en-us/library/ee782536.a ...
- C#操作Mongodb的心得
Mongodb是一个强大的文档型数据库,采用BSON的数据格式.本文主要采用其官方的C#驱动来操作其表中的集合.驱动版本为1.1.0,下载地址为: http://mongodb.github.io/m ...
- HDU - 1232 畅通工程
Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道 ...
- Android ps命令执行后的各项参数含义
直接输入ps后可以看到如下信息: # ps ps USER PID PPID VSIZE RSS WCHAN PC NAME root 1 ...
- jQuery晦涩的底层工具方法们
这里整理的是jQuery源码中一些比较晦涩难懂的.内部的.最底层的工具方法,它们多为jQuery的上层api方法服务,目前包括: jQuery.access jQuery.access: functi ...
- HTML5学习小结
HTML5是用于取代1999年所制定的 HTML4.01和XHTML1.0标准的HTML标准版本.HTML5的第一份正式草案已于2008年1月公布:2012年12月,规范已经正式定稿.W3C计划在20 ...
- 关于iBatis.NET连接各数据库时提示没找到数据库驱动的依赖文件
iBatis.net在连接oracle数据库时使用的是:oracleClient1.0 这个是系统自带的驱动,配置上即可,使用的连接配置为: <database> <provider ...
- Base:-用数组赋值实现while和shift功能
3列数组,arrayA,arrayB,arrayC:分别一一对应主机及其主机所能创建的资源数,还有arrayC表示需要创建的资源数:arrayA=("192.168.1.1" &q ...
- CI框架--事务
CI框架中事务封装的很完善,使用起来很简单 1.不开启事务 //不开启事务 前两个sql 能够执行成功,第三个执行失败 $this->device_model->addForCamera( ...