[問題] 請問這樣的角度算法錯誤在?

看板Flash作者 (魔物を討つ者)時間14年前 (2011/03/19 17:01), 編輯推噓6(6013)
留言19則, 4人參與, 最新討論串1/1
使用AS2.0 首先我的認知是 Flash的角度使用徑度 而且原點在正下方 因此 /| /30| 這樣的話必須計算 -30/360*Math.PI*2 往右則是30/360*Math.PI*2這樣 接著 我需要宣告一個移動的軌跡速度 因此我給obj一個v(速度)和r(角度) 現在我需要做的事情是 某個目標物朝另一個目標物的"正下方"發射東西 決定角度 A   B /θ| _______C___________________________ 基準面 AB是目標物,C是A的正下方投影點 B要發射東西 我的初步想法是計算 (B.x-C.x)/(B.y-C.y) 這會是tanθ 然後Math.atan((B.x-C.x)/(B.y-C.y)) 這樣應該是θ值本身 所以我令obj.r=Math.atan((B.x-C.x)/(B.y-C.y)) 接著物體移動是這樣的 obj.x+=obj.v*Math.sin(obj.r)/360*Math.PI*2 obj.y+=obj.v*Math.cos(obj.r)/360*Math.PI*2 接下來就有問題了,反正結果不如我預期 原本4/3應該會是tan53之類的東西 結果atan(4/3)之後出來的竟然不是53而是-0.9xxxxxxxxx 害我不知道該如何是好 有人知道盲點在哪嗎?(死 -- ▼▼ ◥▇◣◣ ◣▲ \ ╲   ◢◣▲ ◥█████◣ 川澄 舞 /‘ d▄▄▄◣ /‘ ◥██████▌ Kwawasumi Mai ▂▄▄▄▄▄▆ ───██████ ◢█   —◢█ ── ◥██████ 力の覚醒.魔力放出 ▼▼ ◥██◤██ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.151.194 ※ 編輯: KawasumiMai 來自: 61.62.151.194 (03/19 17:02)

03/19 18:30, , 1F
因為 atan 出來的值單位已經是 radian 了....
03/19 18:30, 1F

03/19 18:31, , 2F
再來即使不管這個問題 你的 /180*Math.PI 也放錯地方了...
03/19 18:31, 2F

03/19 20:49, , 3F
請問哪邊有誤?
03/19 20:49, 3F

03/19 21:03, , 4F
反過來 *180/pi
03/19 21:03, 4F

03/19 21:04, , 5F
deg:rad = 180 : pi 你可以用比例去驗證你的算式
03/19 21:04, 5F

03/19 21:06, , 6F
喔 我看錯了 你搞錯了 應該是向一樓說的 atan出來的
03/19 21:06, 6F

03/19 21:06, , 7F
東西就是radian了 可是rotation吃的是degree
03/19 21:06, 7F

03/19 21:09, , 8F
然後sin,cos是吃rad沒錯 可是你對sin /180*pi做什麼??
03/19 21:09, 8F

03/19 21:11, , 9F
啊 我沒注意是as2.0 r跟三角吃的東西一不一樣不確定
03/19 21:11, 9F

03/19 21:12, , 10F
而且我不確定as2.0有沒有atan2,沒有的話 你用atan還要再
03/19 21:12, 10F

03/19 21:13, , 11F
加上一堆判斷 atan出來的角度範圍應該是 +-2pi之間
03/19 21:13, 11F

03/20 00:38, , 12F
AS2有atan2
03/20 00:38, 12F

03/20 02:43, , 13F
上面又打錯 是正負pi/2
03/20 02:43, 13F

03/20 07:43, , 14F
我二樓推的意思是 Math.sin(degree/180*Math.PI) 這樣...
03/20 07:43, 14F

03/20 07:43, , 15F
也就是說 就算你的變數是度為單位也得這樣寫才行
03/20 07:43, 15F

03/20 07:43, , 16F
那現在 atan 出來的值已經單位是 radian 了
03/20 07:43, 16F

03/20 07:44, , 17F
那就直接 Math.sin(obj.r) 就行了....
03/20 07:44, 17F

03/21 11:14, , 18F
感謝各位回覆,我再研究看看
03/21 11:14, 18F

03/21 12:16, , 19F
我成功了QQ
03/21 12:16, 19F
文章代碼(AID): #1DX73qb7 (Flash)