| AI教程 | Flash教程 | Fireworks教程 | Painter教程 | CDR教程 | CAD教程 | 3Dmax教程 | Maya教程 | 摄影技巧 | 广告文案 | LOGO案例 | PS教程

Flash算法研究—力学公式的应用

  物理学,除了让你考试拿学分之外,其实是有很大的实用价值的,现在,就让我们来研究一下物理学在flash中的应用:)

  运动,是动画的必要元素,作为矢量动画的flash当然也不例外。而力学,则是研究物体运动的科学,适当的运用把力学知识在你的flash动画中,会给你的动画带来意想不到的特殊效果或者让你的作品更加精致。

  让我们先来复习一下力学知识,速度这个概念我向大家都知道,它是物体每单位时间运动的位移,要模拟匀速的运动是非常简单的,每桢给mc加上固定的位移就可以了,匀速运动的物理公式是

  S = Vt

  S是位移,V是速度,它是一个矢量,t是时间。在flash动画中,每桢之间会有固定的时间间隔,所以,这个公式可以用每桢加上固定的位移来代替。写成这样:

//第一桢的action,计算x、y方向的单位位移
angle = 30*Math.PI/180;
// 运动方向和水平线之间的角度,需要转换成弧度,这个例子是角度30度,转换成弧度的公式是 a*Math.PI/180
v = 10; // 速度的大小
xstep = v*Math.cos (angle); // 计算x方向的位移量
ystep = v*Math.sin (angle); // y方向的位移量
//上面的代码只需要在初始化的时候计算一次

//第二桢
sprite._x += xstep; // 计算新的x坐标
sprite._y += ystep; // 计算新的y坐标
//上面的代码则需要每桢执行,需要放在循环的桢action里面

//第三桢
gotoandplay(2);

  这段代码的功能是让mc sprite沿着30度的方像以每桢10像素的速度运动。当然这是最简单的运动方式,实际生活中是没有这样完美的匀速运动的,物体在运动中都会受到各种力的影响,比如说摩擦力、空气阻力、重力等等,而在力的作用下,物体表现为加速度运动,只要受力总和不为0,则物体的速度就会每时每刻都不一样,这样的运动,就已经比较接近实际的了。
和加速运动相关的物理公式有

  V=at

  V仍然是速度,t是时间,新加入的a则是加速度,它是每单位时间速度的变化量,她也是一个矢量。那么a是如何计算的呢?请看下面的公式:

  a = F/M

  加速度公式,F是物体的受力总和,M是物体的质量,同样,F也是一个矢量。把这些元素加入到刚才的代码中,则修改这些代码如下:

//第一桢的action,计算加速度
angle = -60*Math.PI/180; // 受力方向和水平线之间的角度,需要转换成弧度,这个例子是角度30度,转换成弧度的公式是 a*Math.PI/180
F = 10; // 受力的大小
vangle = 60*Math.PI/180; // 初始角度
v = 10; // 速度的大小
m = 20; // 物体质量
ax = F*Math.cos (angle)/M
ay = F*Math.sin (angle)/m //x,y方向的加速度
vx = v*Math.cos (vangle); // 计算x方向的位移量
vy = v*Math.sin (vangle); // y方向的位移量
//上面的代码只需要在初始化的时候计算一次

//第二桢
vx += ax;
vy += ay;
sprite._x += vx; // 计算新的x坐标
sprite._y += vy; // 计算新的y坐标
//上面的代码则需要每桢执行,需要放在循环的桢action里面

//第三桢
gotoandplay(2);

  我们可以看到,mc在舞台上划出一道抛物线。大家可以自己试验改变上面的速度质量受力和方向等参数,就可以看到mc的不同运动方式。

主题测试文章,只做测试使用。发布者:绘画吧,转转请注明出处:http://www.huitu8.com/shejijiaocheng/Flashjiaocheng/20190830/93952.html



联系我们

在线咨询:点击这里给我发消息

邮件: