直接上代码,不多说了

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 在右侧

  

  

最新文章

  1. WeX5之xid相关API
  2. linux alarm函数解除read write等函数的阻塞
  3. Java7编程高手进阶读书笔记&mdash;集合框架
  4. ajax请求(二),后台返回的JSon字符串的转换
  5. mysql博客
  6. SSM成功了
  7. 用ModelSim仿真SDRAM操作
  8. c#4.0新特性之协变与逆变
  9. linux设置LD_LIBRARY_PATH变量
  10. SQL语言的组成
  11. 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6155 Subsequence Count 矩阵快速幂
  12. ElasticSearch(八):elasticsearch.yml配置说明
  13. salesforce lightning零基础学习(十一) Aura框架下APP构造实现
  14. PHP实用代码片段(四)
  15. ThinkPHP5模型操作中的自动时间戳总结
  16. Page Visibility API 页面是否获取焦点 Event: visibilitychange
  17. Spring Boot 揭秘与实战(五) 服务器篇 - 其他内嵌服务器 发表于 2017-01-03 | Spring框架 | Spri
  18. 并发编程:GIL,线程池,进程池,阻塞,非阻塞,同步,异步
  19. Windows IOT 开发入门(准备工作)
  20. [c/c++]指针(4)

热门文章

  1. STM32 assert_param
  2. ferret不能创建txt文本--cookiecadger截获不到包
  3. jfinal 解决ajax 跨域访问--jsonp
  4. mysql时间属性之时间戳和datetime之间的转换
  5. 非常简单的数据,支持excel表格下载功能
  6. 镁光c400-MTFDDAK064M固态硬盘更新固件
  7. 关于在left join的on子句中限制左边表的取值时出现非期望的结果
  8. JAVA 学习随笔 : JDK Enhancement Process JEP process
  9. Fiddler 常用文档
  10. Java中Map的三种遍历方法