求向量與圓交點

2021-08-17 08:13:28 字數 483 閱讀 9714

這個題也是被t4專家暴虐的題,我直接直線然後delta。。。跟高中數學一樣,大佬叫我用向量的方式還是啥做,就是不要解方程,結果還是沒想出來。後來把這個題分享給乙個師兄,他剛好在一篇講光線追蹤的**看到然後拿給我看,書中是球面不是圓,都差不多,下面按我的理解寫一下。

首先三維空間下,假設圓心o(a,b,c),半徑為r,那麼球可以定義為(x-a)*(x-a)+(y-b)*(y-b)+(z-c)*(z-c) = r*r;如果有任意一點p(x,y,z),如果他在球面上,則|po| = r,相當於dot(op,op) = dot(p-o,p-o) = r*r;如果有向量p(t) = a + b*t與球相交,則把向量帶入dot(p-o,p-o) = r*r中得到dot(p(t)-o,p(t)-o) = r*r;然後帶入、展開、直接delta,又回到高中數學。。。

本質其實都是一樣的

圓與直線交點

圓與直線交點題目鏈結 include 使用scanf和printf的標頭檔案 include 使用c風格字串函式的標頭檔案 include 使用演算法庫的標頭檔案,max,min,swap,sort等 include 使用cin,cout的標頭檔案 include 數學標頭檔案 include 使用...

計算幾何之求圓與直線的交點

求圓與直線的交點的方法是 求圓心c在直線l上的投影點pr 求出直線l上的單位向量e 根據r和pr的長度來計算出圓內線段部分的一半base 用pr base e即得到答案 題目 cgl 7 d ac include include include using namespace std define ...

圓與線段的交點

poj 3819 給出一條線段的兩個端點,再給出n個圓,求出這條線段被所有圓覆蓋的部分佔了整條線段的百分比。圓與線段的交點 向量ab 的引數方程 p a t b a 0 t 1 將點帶入圓的方程即可。注意 有交點 0 t 1 此題求覆蓋的部分。則 若求得 t 滿足 double ask double...