/// <summary>
        ///  p点到(a,b)点两所在直线的垂点坐标
        /// </summary>
        /// <param name="a">直线上a点</param>
        /// <param name="b">直线上b点</param>
        /// <param name="p">点</param>
        /// <returns>垂点坐标</returns>
        public static Vector2D GetVerticalPosition(Vector2D a, Vector2D b, Vector2D p)
        {
            double fa = b.Y - a.Y;
            double fb = a.X - b.X;
            double fc = a.Y * b.X - a.X * b.Y;

Vector2D vpt = new Vector2D();//垂足
            vpt.X = (fb * fb * p.X - fa * fb * p.Y - fa * fc) / (fa * fa + fb * fb);
            vpt.Y = (fa * fa * p.Y - fa * fb * p.X - fb * fc) / (fa * fa + fb * fb);

return vpt;
        }
        /// <summary>
        /// p点是否在(a,b)两点所在直线上
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <param name="foot"></param>
        /// <returns></returns>
        public static bool DotIsOnLine(Vector2D a, Vector2D b, Vector2D foot)
        {
            return Math.Min(a.X, b.X) <= foot.X && foot.X <= Math.Max(a.X, b.X) && Math.Min(a.Y, b.Y) <= foot.Y && foot.Y <= Math.Max(a.Y, b.Y);
        }

转载于:https://www.cnblogs.com/94cool/p/4654287.html

p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上相关推荐

  1. 计算点到直线的垂点坐标

    第一种: 设直线方程为ax+by+c=0,点坐标为(m,n)     则垂足为((b*b*m-a*b*n-a*c)/(a*a+b*b),(a*a*n-a*b*m-b*c)/(a*a+b*b)) 第二种 ...

  2. 点到直线的垂直交点坐标 和 距离计算

    越来越发现自己数学之差了,连简单的数学运算忘记了,,写下实现点到直线交点坐标的计算方法 原理是两点确定一条直线,利用公式 y = ax+b 去计算 然后根据与直线方程Ax+By+C=0(A≠0,B≠0 ...

  3. 点到直线的垂直交点坐标(斜率必须存在)

    直线公式 y = ax+b 两条直线垂直的各自方程式 1.Ax+By+C=0(A≠0,B≠0) 2.Bx-Ay+m = 0, (m是参变量) 其中p1和p2为已知的两个在直线上的点, p3为垂线上的点 ...

  4. 如何计算空间一条直线外一点到这条直线的垂足点坐标

    如何计算空间一条直线外一点到这条直线的垂足点坐标  示例代码: /计算空间一条直线外一点到这条直线的垂足点坐标. Point3f CoreAlgorithm::GetFootOfPerpendicul ...

  5. html5 直线的两头弯曲,html5教程 (二)(canvas绘制简单的直线)

    Html5_convas var elem = document.getElementById("myConvas"); if (elem && elem.getC ...

  6. 求经过两点的直线的表达式(Leetcode.149)

    在刷Leetcode的时候,第149题需要求经过两点的直线的表达式,所以总结一下如何用代码求出经过两点的直线的表达式 注:只考虑 x, y 为整数的情况,且不考虑计算中整型溢出的情况 求直线表达式需要 ...

  7. java 获取两条经纬度线段的交点坐标工具类

    java 获取两条经纬度线段的交点坐标工具类 网上有线段是否相交的判断方法,但是很少有获取线段交点的坐标的方法 我在这里整合了网上的一些相交的方法,通过相交的xy轴点返推出了经纬度. 拾取坐标系统 可 ...

  8. Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点

    *8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序.修改该程序,让程序能找出在三维空间上距离最近的两个点 题目 题目描述 代码 结果 题目 题目描述 *8.7(距离最 ...

  9. Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠

    **3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠 题目 题目概述 运行示例 破题 代码 ...

最新文章

  1. 从源码的角度分析MapReduce的map-input流程
  2. caxa电子图板2018中文版
  3. Python数据预处理之异常值的处理——【自定义的three_sigma()函数、boxplot()方法】
  4. c3p0-config.xml文件简单说明与备忘
  5. Doc2Bow简介与实践Demo
  6. mysql+根密码是什么意思,重设MySQL根密码
  7. Linux入门学习(六)
  8. 渗透测试流程信息收集
  9. udp recvfrom阻塞吗_网络编程原理与UDP实现
  10. loss函数之MultiLabelSoftMarginLoss
  11. 如何更好地刷题?谈谈我的一点看法
  12. Findbugs错误总结
  13. Python究竟是一门什么样的编程语言?
  14. 春晚红包花落拼多多 巨头们为何前赴后继抢春晚?
  15. Java实现FTP文件上传和下载
  16. 文件下载,搞懂这9种场景就够了
  17. 汇编程序——根据开关状态在7段数码管上显示数字或者字符
  18. 我的世界基岩版种子和java版种子_我的世界:基岩版种子榜单,7个刷怪笼扎堆,还有美丽的花海!...
  19. 语音识别笔记(二)计算音系学
  20. 如何实现RTS游戏中鼠标在屏幕边缘时移动视角

热门文章

  1. 恶意软件伪装成系统更新,通杀Win Mac Linux三大系统,隐藏半年才被发现
  2. 用八块腹肌调戏智能屏是一种什么体验?
  3. 告别学术论文恐慌!休斯顿大学教授的这个建议,让学术写作更简单
  4. 谷歌量子计算突破登Nature封面,200秒顶超算10000年,川普之女:美国实现量子霸权...
  5. Python之流程控制
  6. 双十一电商江湖:唯品会与天猫发力“天团“
  7. new Function()
  8. MediaWiki 1.19.2 发布 - 开源 Wiki 系统
  9. 为栈实现高效的max操作
  10. linux wine 中文乱码,Linux下使用Wine出现中文乱码的解决方法