演算法修煉 撞球碰撞 C

2021-09-20 02:00:28 字數 1241 閱讀 8061

時間限制:1000 ms  |  記憶體限制:65535 kb

難度:3

描述

在平面直角座標系下,撞球桌是乙個左下角在(0,0),右上角在(

l ,

w )的矩形。有乙個球心在(

x ,

y ),半徑為

r 的圓形母球放在撞球桌上(整個球都在撞球桌內)。受撞擊後,球沿極角為

a 的射線(即:

x 正半軸逆時針旋轉到此射線的角度為

a )飛出,每次碰到球桌時均發生完全彈性碰撞(球的速率不變,反射角等於入射角)。

如果球的速率為v,

s個時間單位之後球心在什麼地方?

輸入

輸入檔案最多包含25組測試資料,每個資料僅一行,包含8個正整數l,w,x,y,r,a,v,s(100<=l,w<=10^5, 1<=r<=5, r<=x<=l-r, r<=y<=w-r, 0<=a<360, 1<=v,s<=10^5),含義見題目描述。l=w=x=y=r=a=v=s=0表示輸入結束,你的程式不應當處理這一行。

輸出

對於每組資料,輸出僅一行,包含兩個實數x, y,表明球心座標為(x,y)。x和y應四捨五入保留兩位小數。

樣例輸入

100 100 80 10 5 90 2 23

110 100 70 10 5 180 1 9999

0 0 0 0 0 0 0 0

樣例輸出

80.00 56.00

71.00 10.00

思路:

由於球是沿斜方向運動的,因此我們可以將速度分解為x軸和y軸上的速度vx,vy;

球是乙個半徑為r的實體,我們可以將題目轉化為球心在距大矩形四邊為r的小矩形中運動。

源**:

#include #include#include using namespace std;

int main()

t++;

} printf( "%.2f %.2f\n", x, y );

} return 0;

}

基於Seajs的可控撞球碰撞遊戲

不記得哪個黑色星期五,貪吃魚基本完工的時候,產品突然增加需求,要求金幣扔出去後不消失,互相可碰撞,其最終結果還要由伺服器控制 沒錯,至今做的所有遊戲都有幕後 w 對於碰撞以前只寫過乙個球到處碰牆壁的,小球之間的碰撞倒是沒有接觸,想到他們碰撞過程中的角度變化 速度分配,就不敢往下想了,於是馬上想到bo...

畫素精確碰撞演算法優化

package public static function intersectionrectangle target1 displayobject,target2 displayobject rectangle public static function complexintersectionr...

Hash演算法與Hash碰撞

什麼是hash演算法。雜湊函式 英語 hash function 又稱雜湊演算法 雜湊函式,是一種從任何一種資料中建立小的數字 指紋 的方法。雜湊函式把訊息或資料壓縮成摘要,使得資料量變小,將資料的格式固定下來。該函式將資料打亂混合,重新建立乙個叫做雜湊值 hash values,hash code...