佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1546|回复: 2

[转载]物理知识在FLASH世界中的应用(上篇)

[复制链接]
发表于 8-1-2005 02:33 AM | 显示全部楼层 |阅读模式
作者:cuiyysw




自己尝试着写一些关于FLASH和物理知识的应用,网上这方面的资料太少了,学习心得大家多多交流



一:匀速直线运动


物理公式:x=x0+v;

1。新建文件550*400像素其他的默认;

2。"ctrl"+F8,创建一个影片剪辑,名称“MC”

3。回到主场景,"ctrl"+L打开库面版,把刚创建的影片剪辑拖入到舞台左端,

4。选中这个MC,绑定代码:
onClipEvent(load){//影片加载一次
  v=5;
}

onClipEvent(enterFrame){//进入影片循环
  _x+=v;
  if(_x>400){
    _x=0;  //当MC超出舞台的位置,我们就把就要重新设置MC的起始位置
  }
}


根据公式:x=x0+v, 场景中的MC的_x位置都会增加一个变量V(V=5,加载时初使化的值

看效果:

Flash: http://www.flash8.net/bbs/UploadFile/2005-1/2005150454545.swf










二:变速运动


在变速运动中,物体的速度是随时间变化的,这个变化可以是运动快慢的变化,也可以是运动方向的变化,而“加速度”就是描述质点的速度(大小和方向)随时间变化快慢的物理量

物理公式:v=v0+a*t

其中"a"为加速度,表达式:a=dv/dt(速度差/时间);//不做详解,我们不是研究物理滴:)

1。新建文件550*400像素其他的默认;

2。"ctrl"+F8,创建一个影片剪辑,名称“MC”

3。回到主场景,"ctrl"+L打开库面版,把刚创建的影片剪辑拖入到舞台左端,

4。选中这个MC,绑定代码:
onClipEvent(load){  //影片加载一次
  v=1;     
  a=3;
}

onClipEvent(enterFrame){  //进入影片循环
  v+=a;   //v=v0+at
  _x+=v;  //x=x0+vt

  if(_x>400)
    _x=0;  //当MC超出舞台的位置,我们就把就要重新设置MC的起始位置
}


效果:

Flash: http://www.flash8.net/bbs/UploadFile/2005-1/20051504959123.swf











三:简谐运动


简谐运动是一种变加速运动,比前面学过的各种运动复杂

定义:简谐运动指物体在相同时间间隔内在同一路程上来回移动进行的运动;

重点是,通过弹簧振子的实例,把简谐运动在一次全振动过程中的受力情况和运动情况弄清楚。1:(见图)




步骤:

1。新建文件550*400像素其他的默认;

2。"ctrl"+F8,创建一个影片剪辑,名称“MC”

3。回到主场景,"ctrl"+L打开库面版,把刚创建的影片剪辑拖入到舞台左端,

4。选中这个MC,绑定代码:
onClipEvent(load){
  r=100;   //半径
  rad=0;
  y0=_y;   //y的平衡位置
}
onClipEvent(enterFrame){
  _y=y0+Math.sin(rad)*r;   
  rad+=50;   //角度的不断变化,实现弹簧振子在固定的半径上下振动, 这个值可以根据你需要的频率改变,试试  rad+=5
}


效果:

Flash: http://www.flash8.net/bbs/UploadFile/2005-1/2005150523595.swf









其实,上面的公式是可以推广的,因为在现实的世界,弹簧振子是需要考虑重力,空气摩擦,等很多其他方面的因素,但是,在FLASH世界中,却是能完全实现真空状态理想物理模型,这里加入了角度的计算,(见图解)






照受力分析,按“”运算分别求出_x,_y,//不懂的看看大学物理书吧:)

简单的说:分别求出_x,  _y,得到的就是倾斜方向的运动结果

把效果1的代码换成下面的试试


onClipEvent(load){
  rx=50;
  ry=100
  rad=0;
  jiaodu=1  //倾斜方向,见图解
  x0=_x;
  y0=_y;  //y的平衡位置
}
onClipEvent(enterFrame){
  _x=x0+Math.sin(rad)*rx*jiao;
  _y=y0+Math.sin(rad)*ry;   
  rad+=50;   //角度的不断变化,实现弹簧振子在固定的半径上下振动, 这个值可以根据你需要的频率改变,试试:rad+=5;
}



//值得注意的是:以下的两种情况





效果:

Flash: http://www.flash8.net/bbs/UploadFile/2005-1/2005150583119.swf









四:阻尼运动;


定义:

前面所讲的谐振动是一种理想状况,即谐振子系统做无阻尼(无摩擦和辐射损失)的自由振动,它是等幅振动。而在实际中,阻尼是不可消除的,如果没有能量补充,由于机械能有损耗,起振幅将不断地衰减,这种振幅随时间不断衰减的振动叫阻尼振动



代码如下:

onClipEvent(load){
  r=100;
  rad=0;
  y0=_y;    //y的平衡位置
  zuli=1;
}

onClipEvent(enterFrame){
  _y=y0+Math.sin(rad)*r*zuli;   
  zuli*=0.98;  //不断减小,并且接近与0,(zuli>0)
  rad+=50;     //角度的不断变化,实现弹簧振子在固定的半径上下振动,这个值可以根据你需要的频率改变,试试:rad+=5;
}

              

变量"zuli"初使值是1,当zuli非常接近0的时候,也就相当与弹簧振子停下来了


效果:

Flash: http://www.flash8.net/bbs/UploadFile/2005-1/20051513547243.swf



加入了角度的:

Flash: http://www.flash8.net/bbs/UploadFile/2005-1/20051513718503.swf




Super-Tomato : ~_~" 因为排版很麻烦,所以把这篇作为上篇,还有4个物理公式下篇介绍
回复

使用道具 举报


ADVERTISEMENT

发表于 8-1-2005 08:41 AM | 显示全部楼层
到了中学完还是摆脱不了phsyic......
回复

使用道具 举报

发表于 10-1-2005 06:10 AM | 显示全部楼层
hahabin 于 8-1-2005 08:41 AM  说 :
到了中学完还是摆脱不了phsyic......



这要找那个姓牛的算帐去。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-11-2024 02:07 PM , Processed in 0.109119 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表