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);
            }
  • 相关阅读:
    HTML5 drag拖动事件
    echarts 实现立体柱子图
    团队管理(七)
    echarts环比图实现
    父组件调用图表组件根据按钮切换展示数据
    echarts 折柱图绘制图表标注
    团队管理(六)
    团队管理(五)
    css 绘制圆角三角形
    团队管理(四)
  • 原文地址:https://www.cnblogs.com/94cool/p/4654287.html
Copyright © 2011-2022 走看看