不久前,看了番茄老师的“浅谈sin,cos”,真是让人受益非浅,经过这两天的研究, 悟出了------Math.atan函数在FLASH中的应用“
鼠标跟随”
好了,我们先看Math.atan的语法规则:
可用性
Flash Player 5。在 Flash Player 4 中,Math 对象的方法和属性是使用近似值模拟的,可能不如 Flash Player 5 支持的非模拟数学函数那样精确。
用法
Math.atan(x)
参数
x 一个数字。
返回
一个数字。
说明
方法;计算并返回参数 x 中指定的数字的反正切值。返回值介于负二分之 pi 与正二分之 pi 之间。
懂了吗?好,再看效果:
点击浏览该文件这就是Math.atan的妙用,,下面我来仔细给大家分析一下程序~
如图:
要害代码如下:
function RtoD(rad){//FLASH中的三件函数使用的单位是“弧度”,所以用RtoD函数将角度转化为弧度
return rad*180/Math.PI;
}
bug.onMouseMove=function(){
mcx=(_root._xmouse-bug._x);获得鼠标与MCX轴的距离,并用于下面的计算
mcy=(_root._ymouse-bug._y);同上
if(mcx<0 and mcy<0){//判定,假如MC在坐标轴的第三象限;
dRad=Math.PI ;//附正值
}else if(mcx<0 and mcy>0){//判定,假如MC在坐标轴的第二象限;
dRad= -Math.PI;//附负值
}
else{dRad=0;//其他象限不要变
}
angle=Math.atan(mcy/mcx)+dRad;//加“dRad的目的是因为:数学上与FLASH中所定义的坐标轴在Y轴方向是相反的~,所以,当鼠标经过第2象限就加一个PI()
当鼠标经过第3象限就减一个PI()
bug._rotation=RtoD(angle+Math.PI/2);这里的再次用RtoD函数,将“弧度”转换为“角度”,因为MC的头指向上方,而X轴的正方向以逆时针算起,加个PI()/2(90度)做为补偿,就刚才套上鼠标的位置~
};
原文件
点击浏览该文件
好好学吧,这个东西很有用的,高手指导,菜鸟学习
//转载请与本人联系