主题:  问各位一个关于Math.atn2的问题

肤浅对白

职务:普通成员
等级:1
金币:1.0
发贴:163
注册:2002/2/24 9:37:51
#12002/3/13 19:57:55
new angle=Marh.atn2(_root.y_mouse-_y,_root._xmouse-_x)*180/(Math.PI)-90;
麻烦高手解释一下这段代码的意思 原文件:ftp://public:public@www.5dmedia.com/stare.fla
new angle=Marh.atn2(_root.y_mouse-_y,_root._xmouse-_x)----这个算到的是什么?是弧度么?
-90又是为什么呢?

编辑历史:[这消息被5D大叔编辑过(编辑时间2002-03-21 11:56:55)]


金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
注册:2002/1/6 14:44:13
#22002/3/13 20:27:41
Math.atan2(y,x) = Math.atan(y/x);
Math.atan2返回值是四个象限的
而Math.atan是两个象限的

编辑历史:[这消息被goldgoat编辑过(编辑时间2002-03-21 12:22:13)]

5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

肤浅对白

职务:普通成员
等级:1
金币:1.0
发贴:163
注册:2002/2/24 9:37:51
#32002/3/14 21:18:01
麻烦您能不能解释一下MATH。ATN求到的到底是什么东西?
是弧度还是说是角度?
如果求到是的角度 为什么后面好要减去一个90呢?
还请高手详细说明啊 谢谢!!!



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
注册:2002/1/6 14:44:13
#42002/3/15 12:11:33
弧度!


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

redsteps

职务:普通成员
等级:1
金币:1.0
发贴:144
注册:2002/1/7 22:28:32
#52002/3/15 12:22:03
弧度*180/Math.PI就得到角度了
可以加90度了



金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
注册:2002/1/6 14:44:13
#62002/3/21 12:30:45
我来了
哈哈
昨天回去了一下
下面具体讲解一下atan与atan2的区别:
Math.atan()具体就是计算一个值的反正切,得到的是弧度值
因为反正切的定义域是[-π~π],所以反正切得到的角一定是在一四象限的角
如果有时候你根据直线的斜率计算夹角是就会差180度,你还要经过复杂的判断后才能确定最后的夹角。
但是flash为我们提供了Math.atan2(),这个函数,它有两个参数,一个是y值,一个是x值,这样根据x,y的值所计算出来的角度就是四个象限中的角度,如果计算直线的夹角的话就不会出现错误现象,使我们的程序更加容易。


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER

金山羊

职务:普通成员
等级:4
金币:10.0
发贴:827
注册:2002/1/6 14:44:13
#72002/3/21 20:44:04
别提那个糟糕的flash了
效果还行
可是作者就没有一点做flash的基础
把flash的组件随便乱拖,怎么能叫人理解
它是把eye的角度先转了90度
然后再用action控制
而且修改了mc的中心
叫人怎么能看的明白
对于atan的用法不容置疑
希望你以后不要再多看这样的作品
如果你自己做一个的话就不会出现这样的问题了
本来是不应该减90度的!


5d.cn
FLASHDEP
TECHNOLOGY SUPPORT
JAVA/ACTIONSCRIPT/javascript
CFML/JSP/COLDFUSION/FLASH REMOTING
JRUN/COLDFUSIONMX
FLASH/DREAMWEARER