Re: [問題] 線與圓 聯立方程式

看板C_and_CPP作者 (台大插屁)時間14年前 (2010/08/28 13:55), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《yu1 (~renard~)》之銘言: : 遇到的問題: (題意請描述清楚) : 請問c++有沒有 給一個圓的方程式與一條線的方程式解交點 的函式 : 希望得到的正確結果: : 希望得到線與圓的交點座標 : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : VC++ 基本上沒有 要自己寫 寫法並不困難 你可以假設 2 2 2 圓的方程式 : (X-h) + (Y-k) = r 中心點(h,k) 半徑 r 直線方程式 : aX + bY + c = 0 先判斷是否有交點 : 利用點到直線的公式來判斷 |a*h + b*k + c| d = ------------------ > r 交於兩點 [相割] 2 2 1/2 ( a + b ) = r 交於一點 [相切] 先算出圓心和直線方程式的垂足 (x1,y1) 很明顯的 直線的法向量是 (a,b)所以它的方向向量就是 (-b,a) 把直線方程式利用直線的參數式 x = x1 + -b*t 而t等於多少呢? y = y1 + a*t 圓心(h,k) 想成是有一個直角三角形 斜邊 r /|                  / | 點到直線距離d /____| 剩下的這股就是t 用上面的公式輕鬆幾行就寫完了 帶入即為所求 不過建議先把圓和直線包成物件再傳入function比較符合物件導向的想法 未來程式的maintain也比較方便 -- Iteration is human, recursion is divine -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.6.30
文章代碼(AID): #1CUAJj8h (C_and_CPP)
文章代碼(AID): #1CUAJj8h (C_and_CPP)