[其他] 不使用開根號求出解的方法

看板GameDesign (遊戲設計)作者 (準備衝刺)時間15年前 (2010/10/15 11:30), 編輯推噓7(707)
留言14則, 6人參與, 最新討論串1/1
※ [本文轉錄自 Math 看板 #1CjosVPO ] 作者: entersoal (準備衝刺) 看板: Math 標題: [其他] 不使用開根號求出解的方法 時間: Fri Oct 15 00:19:40 2010 原po過去是念數學系的,出社會工作後進入遊戲業多少運用到數學 多半負責規格使用的演算法或是推估數據模型(戰鬥、經濟..etc.) 最近遇到了一個障礙 在處理一個狀況是在賽車這個機制下產生的 在平面XY座標系之下 假設A玩家所在的點P1為(P1x,P1y),其速度向量V1為(V1x,V1y),車體半徑為r1 B玩家所在的點P2為(P2x,P2y),其速度向量V2為(V2x,V2y),車體半徑為r2 需要預測的狀況為兩玩家發生碰撞 我所使用的方法分幾個步驟做篩檢 I.令兩玩家構成的圓剛好相切時的連心線為d,如果 r1+r2 < d 進入II II.利用V1和V2求出路徑公式(直線公式),在將此二線公式做二元一次聯立方程式求解 利用克拉碼公式排除 delta=0,但delta x and delta y不全為零的狀況 進入III III.為我主要問題 我希望能夠驗證此解是否能落於V1和V2旋轉正負30度所掃出的面積中,如果能驗證 此點,則能夠確實驗證兩向量交會點在不可避免得範圍內 如此滿足三項條件就產生玩家發生碰撞的剛體碰撞運算 但我在推導第三點預到了障礙,原先只需要算與X軸夾角, 就可以推導V向量所要掃的範圍不等式,但是麻煩在此運算需要用到開根號計算cosθ 而此運算必須由Server進行所以不得使用多項式函數以上的複雜度運算 想請教不知道有沒有可以不用開根號就可以計算餘弦值的方法 或是其實我想法上有錯?感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.144.10

10/15 06:38,
沒仔細看全文...Orz 不過考慮泰勒展前幾項..
10/15 06:38

10/15 06:39,
不知道這樣可不可以Orz
10/15 06:39

10/15 11:25,
對吼!!!!還有泰勒展開式,謝謝,我找到方向了
10/15 11:25
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.144.10

10/15 11:55, , 1F
算cos可以用查表法+內插,會比泰勒展開更快
10/15 11:55, 1F

10/15 13:44, , 2F
建議你用Cordic
10/15 13:44, 2F

10/15 14:22, , 3F
有沒有可能將III的運算外包給ASIC IC去做呢
10/15 14:22, 3F

10/15 14:23, , 4F
這樣能大幅加速運算速度
10/15 14:23, 4F

10/15 15:05, , 5F
應該是沒辦法,還是等推導出公式給Server運送:(
10/15 15:05, 5F

10/15 15:42, , 6F
CORDIC演算法連8051都跑得動,可以試試看
10/15 15:42, 6F

10/15 15:47, , 7F
喔喔,好,我試試看,我太孤陋寡聞,剛剛google了一下
10/15 15:47, 7F

10/15 15:48, , 8F
原來Cordic是一個這麼了不起的演算法
10/15 15:48, 8F

10/15 19:54, , 9F
數學好真令人羨慕 >"<
10/15 19:54, 9F

10/16 00:08, , 10F
可以查數值分析專書,或單晶片常用演算法
10/16 00:08, 10F

10/16 00:09, , 11F
很多演算法簡單又好用的
10/16 00:09, 11F

10/16 00:49, , 12F
我以前數值分析學得還不錯,不過僅限於ODE的部份...
10/16 00:49, 12F

10/16 00:49, , 13F
PDE就沒學到了
10/16 00:49, 13F

10/16 09:02, , 14F
數學是科學和工程之本, 所以有時間多練習...
10/16 09:02, 14F
文章代碼(AID): #1CjyhW3u (GameDesign)
文章代碼(AID): #1CjyhW3u (GameDesign)