zoukankan      html  css  js  c++  java
  • p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上

     /// <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);
            }
  • 相关阅读:
    spring boot RESTfuldemo测试类
    再谈Redirect(客户端重定向)和Dispatch(服务器端重定向)
    HTTP协议解析
    HTTP协议详解(真的很经典)
    JMeter进行简单的数据库(mysql)压力测试
    LoadRunner利用ODBC编写MySql脚本
    性能瓶颈的分析
    bug的处理流程
    Loadrunner11 录制手机App脚本多种方法介绍
    利用fiddler录制脚本
  • 原文地址:https://www.cnblogs.com/94cool/p/4654287.html
Copyright © 2011-2022 走看看