作者forestluch (小強)
看板Flash
標題[問題] 求距離
時間Thu Dec 20 00:32:27 2007
這個問題困擾我很久
我想求出p1點和滑鼠的直線距離
於是我寫出一道算式
((_xmouse-p1._x)^2+(_ymouse-p1._y)^2)^0.5
就是三角形兩邊距平方相加再開根號
然後trace出來的值很不正常 忽大忽小忽正忽負
於是我將它改成絕對值的計算
Math.abs(((Math.abs(_xmouse-p1._x)) ^ 2+Math.abs((_ymouse-p1._y)) ^ 2) ^ 0.5)
也就是兩邊相減值各先畫成絕對值 再平方 再相加 再開根號 再劃成絕對值
結果跑出來的值都是正數 但是 還是忽大忽小的
經過滑鼠努力的跑 努力的trace之後 發現.....
0xxx0
x0x0x
xxpxx
x0x0x
0xxx0
結果是這樣的
由p1點向四個角落放射出去的線上值都會是0 靠近線則值亦遞減
這代表著 當x軸的差值 與y軸的差值 相等時 (直角等腰三角形)
斜邊距離將是0?
怎麼會這樣 我算式有列錯嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.171.126.5
推 cjcat2266:AS的次方是用 Math.pow(base, power) 吧 12/20 00:42
→ cjcat2266:^ 是bitwise XOR唷 12/20 00:43
→ cjcat2266:bitwise XOR運算規則為 (二進位) 1010 ^ 1100 == 0110 12/20 00:43
→ cjcat2266:類似的bitwise operator還有 &(AND) |(OR) ~(NOT) 12/20 00:45
→ forestluch:囧rz....工程計算機按太多的職業病 謝謝你喔 12/20 00:51