欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#求點(diǎn)到直線的投影點(diǎn)坐標(biāo)

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

點(diǎn)在指定直線的投影點(diǎn),即過(guò)點(diǎn)作一垂直于指定直線的直線,與指定直線的交點(diǎn)即為所求。這個(gè)問(wèn)題其實(shí)回歸到兩條垂直直線的交點(diǎn)問(wèn)題,回到最原始的初中幾何知識(shí),復(fù)習(xí)下
如圖示

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

說(shuō)到斜率,就有不存在的情況,如圖(2),顯然這種情況B的橫坐標(biāo)=A的橫坐標(biāo),B的縱坐標(biāo)=C的縱坐標(biāo)
本文重點(diǎn)討論第一種情況,其實(shí)也很簡(jiǎn)單,聯(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

復(fù)制代碼 代碼如下:

        /// <summary>
        /// 求直線外一點(diǎn)到該直線的投影點(diǎn)
        /// </summary>
        /// <param name="pLine">線上任一點(diǎn)</param>
        /// <param name="k">直線斜率</param>
        /// <param name="pOut">線外指定點(diǎn)</param>
        /// <param name="pProject">投影點(diǎn)</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);
            }
        }

相關(guān)文章

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

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

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

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

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

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

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

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

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

    C# 對(duì)象映射的高性能方案

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

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

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

    C# 命名空間(Namespace)相關(guān)知識(shí)總結(jié)

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

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

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

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

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

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

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

最新評(píng)論