亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

c#求點到直線的投影點坐標

 更新時間:2013年12月09日 11:24:57   作者:  
這篇文章主要介紹了c#求直線外一點到該直線的投影點,大家參考使用吧

點在指定直線的投影點,即過點作一垂直于指定直線的直線,與指定直線的交點即為所求。這個問題其實回歸到兩條垂直直線的交點問題,回到最原始的初中幾何知識,復習下
如圖示

首先我們明確下已知條件,指定直線上任一點A,直線斜率k,點C,求點B

說到斜率,就有不存在的情況,如圖(2),顯然這種情況B的橫坐標=A的橫坐標,B的縱坐標=C的縱坐標
本文重點討論第一種情況,其實也很簡單,聯(lián)立兩條直線求解即可

直線AB方程式即y-yA=k*(x-xA)
∵兩條垂直直線的斜率乘積 = -1
∴由AB線斜率為k可知BC線斜率為-1/k,可知直線BC方程式為
y-yC=-1/k*(x-xC)
聯(lián)立方程組解得
xB = (k * xA+ xC / k + yC - yA) / (1 / k + k)
由xB代入BC方程即可得yB

復制代碼 代碼如下:

        /// <summary>
        /// 求直線外一點到該直線的投影點
        /// </summary>
        /// <param name="pLine">線上任一點</param>
        /// <param name="k">直線斜率</param>
        /// <param name="pOut">線外指定點</param>
        /// <param name="pProject">投影點</param>
        protected void GetProjectivePoint(PointF pLine, double k, PointF pOut, ref PointF pProject)
        {
            if (k == 0) //垂線斜率不存在情況
            {
                pProject.X = pOut.X;
                pProject.Y = pLine.Y;
            }
            else
            {
                pProject.X = (float)((k * pLine.X + pOut.X / k + pOut.Y - pLine.Y) / (1 / k + k));
                pProject.Y = (float)(-1 / k * (pProject.X - pOut.X) + pOut.Y);
            }
        }

相關文章

  • C#導出數(shù)據(jù)到excel如何提升性能

    C#導出數(shù)據(jù)到excel如何提升性能

    這篇文章主要介紹了C#導出數(shù)據(jù)到excel如何提升性能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 基于C#實現(xiàn)獲取Windows所有窗口句柄

    基于C#實現(xiàn)獲取Windows所有窗口句柄

    在做錄屏或截屏操作時,需要獲取當前正在運行中的桌面程序句柄,所以這篇文章主要為大家詳細介紹了如何使用C#實現(xiàn)獲取Windows所有窗口句柄,需要的可以參考下
    2023-12-12
  • C#中截取字符串的的基本方法詳解

    C#中截取字符串的的基本方法詳解

    這篇文章主要介紹了C#中截取字符串的的基本方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • c#讀寫App.config,ConfigurationManager.AppSettings 不生效的解決方法

    c#讀寫App.config,ConfigurationManager.AppSettings 不生效的解決方法

    這篇文章主要介紹了c#讀寫App.config,ConfigurationManager.AppSettings 不生效的解決方法,需要的朋友可以參考下
    2015-10-10
  • C# 對象映射的高性能方案

    C# 對象映射的高性能方案

    這篇文章主要介紹了C# 對象映射的高性能方案,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,有需要的朋友可以借鑒參考下
    2020-12-12
  • 使用C#開發(fā)ActiveX控件

    使用C#開發(fā)ActiveX控件

    activex控件以前也叫做ole控件,它是微軟ie支持的一種軟件組件或?qū)ο?,可以將其插入到web頁面中,實現(xiàn)在瀏覽器端執(zhí)行動態(tài)程序功能,以增強瀏覽器端的動態(tài)處理能力。通常activex控件都是用c++或vb語言開發(fā),本文介紹另一種方式,使用c#語言開發(fā)activex控件。
    2017-02-02
  • C# 命名空間(Namespace)相關知識總結

    C# 命名空間(Namespace)相關知識總結

    這篇文章主要介紹了C# 命名空間(Namespace)的相關知識,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以參考下
    2020-06-06
  • C#中Hashtable和Dictionary的區(qū)別與用法示例

    C#中Hashtable和Dictionary的區(qū)別與用法示例

    由于 Hashtable 和 Dictionary 同時存在, 在使用場景上必然存在選擇性, 并不任何時刻都能相互替代。所以這篇文章主要給大家介紹了關于C#中Hashtable和Dictionary區(qū)別的相關資料,需要的朋友可以參考下
    2021-05-05
  • C# 使用WPF 用MediaElement控件實現(xiàn)視頻循環(huán)播放

    C# 使用WPF 用MediaElement控件實現(xiàn)視頻循環(huán)播放

    在WPF里用MediaElement控件,實現(xiàn)一個循環(huán)播放單一視頻的程序,同時可以控制視頻的播放、暫停、停止。這篇文章給大家介紹了C# 使用WPF 用MediaElement控件實現(xiàn)視頻循環(huán)播放,需要的朋友參考下吧
    2018-04-04
  • 解析C#中用Process類殺死進程,執(zhí)行命令的深入分析

    解析C#中用Process類殺死進程,執(zhí)行命令的深入分析

    本篇文章是對C#中用Process類殺死進程,執(zhí)行命令進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論