實驗室胡某是lol一區最強王者,其上分神器就是adcarry中的皮城女警。話說這女警不但長的好看,手還是全聯盟最長的。女警的r技能完美一擊呢,其實就是點爆對方的頭,簡稱爆頭。所謂爆頭,就是子彈直接命中對方的頭部,以秒殺敵人。
現在用乙個三維的直角座標系來描述遊戲中的三維空間(水平面為xoy平面,z軸正方向是上方)。
假設遊戲中角色的頭是乙個標準的球。告訴你對面暴走金克斯的身高,頭部半徑,所站位置的座標;
胡某所控女警的身高,頭部半徑,所站位置的座標,以及槍頭所指方向的單位向量。
女警的槍瞄準時槍膛中的子彈跟視線基本同線,我們忽略它們的距離,就當成同線。
金克斯呢,很是囂張地正立著。現在女警正在瞄準,由於瞄準時身體微彎,視線從頭心出發,他頭部的實際高度比正立時低10%。
你的任務就是,計算女警在這一刻扣下扳機,能否爆金克斯的頭。
注意:這裡忽略子彈的直徑和重力作用,也就是說子彈是無限小的,彈道是一條筆直的射線,兩人之間沒有障礙物。
並且只要子彈擦到頭部,哪怕是邊緣,也算爆頭。
測試資料的第一行有乙個正整數t,表示有t組測試資料。
每組資料的第一行有五個實數,h1,r1,x1,y1,z1,分別表示金克斯的身高,頭部半徑以及所站的位置。
第二行有八個實數,h2,r2,x2,y2,z2,x3,y3,z3,分別表示女警的身高,頭部半徑,所站位置,以及槍頭所指方向的方向向量。
每一組輸入資料對應一行輸出。如果能爆金克斯的頭,輸出boom;,否則輸出pity。
21.62 0.1 10.0 10.0 10.0
1.80 0.09 0.0 0.0 0.0 1.0 1.0 1.0
1.62 0.1 0.0 0.0 0.0
1.80 0.09 10.0 10.0 10.0 -1.0 -1.0 -1.0
boom
boom
此題若僅僅認為是求乙個叉積判斷距離那就大錯特錯了,剛開始是說怎麼老是wa,後來看網上別人帖子才受到啟發原來剛開始第一步就少了判斷射擊方向,所以如果射擊是反的叉積判斷距離和射正的判斷的距離一樣,所以第一步判斷方向一定不能少,乙個向量點乘就搞定,至於後來的叉積判斷距離,我是將三維分解為x,y;x,z;y,z這三個垂直方向來三次判斷的二維叉積,至於三維叉積的判斷方法由於本人能力有限還不足以完成,下面附上**僅供參考:
#include #include#includeusing namespace std;
double ss(double ax,double ay,double bx,double by,double cx,double cy)//此函式算叉積,儘管是二維叉積......
double jiao(double x1,double y1,double z1,double x2,double y2,double z2)//此函式判斷射擊方向,用的是向量點乘的逆運算,算出cos值
int main()
{ int n;
double h1,r1,x1,y1,z1,h2,r2,x2,y2,z2,x3,y3,z3;
scanf("%d",&n);
for(int i=0;i
叉積求點到平面距離 平面方程怎麼求
已知兩點和乙個向量都在同乙個平面上,兩點可以組成乙個向量。這兩點組成的向量能求出來,同時還已知直線的方向向量,所以通過求法線就可以得到平面方程。推薦閱讀 sinx的倒數及推導過程 已知點和直線求平面方程 任取直線上一點,與直線外已知點構成向量,顯然該向量位於平面內 然後根據直線方程得到直線方向向量,...
叉積求點到平面距離 用叉乘求法向量 doc
用叉乘求法向量.doc page 1 平面法向量的求法及其應用 平面的法向量 1 定義 如果,那麼向量叫做平面的法向量。平面的法向量共有兩大類 從方向上分 無數條。2 平面法向量的求法 方法一 內積法 在給定的空間直角座標系中,設平面的法向量 或,或 在平面內任找兩個不共線的向量。由,得且,由此得到...
點積與叉積
點積和叉積 1 點積 設點座標a x1,y1 b x2,y2 c x3,y3 d x4,y4 向量ab x2 x1,y2 y1 xab,yab ab sqrt xab 2 yab 2 向量cd x4 x3,y4 y3 xcd,ycd cd sqrt xcd 2 ycd 2 向量ab與向量cd的點積為...