2006/02/18 | 数学函数控制MC旋转的示意图
类别(Flash课件设计) | 评论(0) | 阅读(206) | 发表于 00:48
数学函数控制MC旋转时,通常有两种换算,一种是从角度换算到距离,另种是从距离的比值换算回角度,前面讨论的例子中,使用了Math.cos(),Math.sin(),以及Math.asin(),从距离换算回角度时,采用asin()及acos()不会因为极限问题而出错。
例子中的关键句如下:
gx_r = Math.asin((y2 - y1) / Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1))) * 180 / 3.141593);
该句的作用原理如下图所示:

图片如下:

在flash文件中,当鼠标开始拖动后,计算鼠标与旋转中心点的角度,来得到目标应该旋转的角度,如图中所示的两个a角,它们的角度是相等的,用asin()函数可以求出。
正确的旋转还与注册点有关,在本例中,因为各元件是通过代码来添加,并指定了具体的初始位置,所以旋转时,只要根据旋转点做相应变化即可。
该段代码的编写中,变量名的书较不规范;元件较多时,逐个计算会很麻烦,实际使用中,可以将整体做为一个MC来进行控制,相对会容易一些。该段代码简化以后可以实现旋转角尺的效果,留给大家思考吧。
0

评论Comments