作者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
1F:推 cjcat2266:AS的次方是用 Math.pow(base, power) 吧 12/20 00:42
2F:→ cjcat2266:^ 是bitwise XOR唷 12/20 00:43
3F:→ cjcat2266:bitwise XOR运算规则为 (二进位) 1010 ^ 1100 == 0110 12/20 00:43
4F:→ cjcat2266:类似的bitwise operator还有 &(AND) |(OR) ~(NOT) 12/20 00:45
5F:→ forestluch:囧rz....工程计算机按太多的职业病 谢谢你喔 12/20 00:51