flash as 初步学会教程 圆和鸭子蛋圆函数的应用

更新时间:15-11-02 21:54 热度:481
 

  15110221543034355389031 flash as 初步学会教程 圆和鸭子蛋圆函数的应用

  圆和鸭子蛋圆函数

  1、圆的参变量方程:

复制代码

代码如下所述:

 x=r*cosx //x、y是圆上一点儿的坐标;r是圆半径;
 y=r*sinx //x是圆半径绕圆心旋转的角度。

  2、鸭子蛋圆的参变量方程:

复制代码

代码如下所述:

 x=a*cosx //x、y是鸭子蛋圆上一点儿的坐标;a、b作别是长、短轴
 y=b*sinx //x是鸭子蛋圆旋转的角度。

  圆和鸭子蛋圆函数应用举例

  例 3.3.1 (敞开3.3.1.fla文件

  场景中有一个影片儿剪接,双击这个mc,在这个mc内,我们看见有两个小照片儿剪接(f_mc,d_mc),写在第1帧上的脚本代码:

  this.f_mc._visible = this.d_mc._visible=0;
  for (k=1; k<21; k++) {
   duplicatemovieclip(this.f_mc, "f"+k, k);
   duplicatemovieclip(this.d_mc, "d"+k, k+40);
  }
  for (k=1; k<21; k++) {
   this["f"+k]._x = 130*math.cos(18*k*math.pi/180);//圆半径是130,圆周上每隔18度
   this["f"+k]._y = 130*math.sin(18*k*math.pi/180);//放一个复制的mc
   this["d"+k]._x = 130*math.cos(18*k*math.pi/180);//鸭子蛋圆的长轴是130,短轴是60;鸭子蛋圆的
   this["d"+k]._y = 60*math.sin(18*k*math.pi/180); //圆周上也是每隔18度放一个复制的mc
  }

  角度18*k*math.pi/180中math.pi/180是把1度改换成的弧度;k取1~20,那末18*k*math.pi/180就是18度到360度。刚好每隔18度安放一个mc

  按ctrl+enter播放,我们可以看见复制的mc被安放成一个圆和鸭子蛋圆。作为圆和鸭子蛋圆,它们是静止在各自的位置上。怎么样让这个圆和鸭子蛋圆动(旋转)起来哩?

  15110221543151583607607 flash as 初步学会教程 圆和鸭子蛋圆函数的应用

  我们可以这么思索问题,在帧频事情的循环中,每循环一次(j++),使圆(还是鸭子蛋圆)上的点都再旋转18度(角度都增加18*j度),到了下一个位置,这么圆(还是鸭子蛋圆)就可以旋转起来了。

  因为每一次旋转都是复制的mc的位置互相交换,而群体的图形没有变更,所以,我们不由得易看见圆(还是鸭子蛋圆)在运动,解决的方法是把那里面的几个mc的放大系数变更。

  例 3.3.2

  敞开3.3.2.fla文件,比较它与3.3.1.fla文件的脚本代码的差别,运行3.3.2.fla文件,仔细查看效果。

  15110221543151583607607 flash as 初步学会教程 圆和鸭子蛋圆函数的应用

  例 3.3.2源手续:

复制代码

代码如下所述:

  j = 0;
 this.f_mc._visible = this.d_mc._visible=0;
 for (k=1; k<21; k++) {
  duplicatemovieclip(this.f_mc, “f”+k, k);
  duplicatemovieclip(this.d_mc, “d”+k, k+40);
 }
  f1._xscale = f1._yscale=f10._xscale=f10._yscale=100;//放大复制后那里面几个mc
  d5._xscale = d5._yscale=d15._xscale=d15._yscale=50;
this.onenterframe = function() {
  j++;
 for (k=1; k<21; k++) {
  this["f"+k]._x = 130*math.cos(18*k*math.pi/180+18*j*math.pi/180);
  this["f"+k]._y = 130*math.sin(18*k*math.pi/180+18*j*math.pi/180);
  this["d"+k]._x = 130*math.cos(18*k*math.pi/180-18*j*math.pi/180);
  this["d"+k]._y = 50*math.sin(18*k*math.pi/180-18*j*math.pi/180);
 }
 };

  角度中+18*j*math.pi/180在帧频事情的循环中,每循环一次影片儿位置的角度增加18度。-18*j*math.pi/180与面前方向相反。

  我们使圆和鸭子蛋圆都旋转运动起来了,我们还可以不断变更圆的半径和鸭子蛋圆的长、短轴,使圆和鸭子蛋圆相互改换,还是其他的式样变动。有兴致的可以参看3.3.3.fla文件。

  15110221543151583607607 flash as 初步学会教程 圆和鸭子蛋圆函数的应用

  例 3.3.3源手续脚本代码:

复制代码

代码如下所述:

  j = rotat=scale=0;//设置统计变量、旋转角儿度和放大系数的起初值为0;
  q = l=w=130;   //设置圆的半径和鸭子蛋圆长轴(着手时的值)
  m = 50;     //设置鸭子蛋圆短轴
  this.f_mc._visible = this.d_mc._visible=0;
  for (k=1; k<21; k++) {
   duplicatemovieclip(this.f_mc, “f”+k, k);
   duplicatemovieclip(this.d_mc, “d”+k, k+40);
  }
  f1._xscale = f1._yscale=f10._xscale=f10._yscale=100;
   //使复制的mc中是4个平面或物体表面的大小变大为4倍
  d5._xscale = d5._yscale=d15._xscale=d15._yscale=50;
this.onenterframe = function() {
 this._rotation += rotat;//使(f_mc的)父级mc旋转;
 this._xscale -= scale; //放大还是由大变小(f_mc的)父级mc
 this._yscale -= scale;
  j++;
  for (k=1; k<21; k++) {
   this["f"+k]._x = q*math.cos(18*k*math.pi/180+18*j*math.pi/180);
   this["f"+k]._y = l*math.sin(18*k*math.pi/180+18*j*math.pi/180);
   this["d"+k]._x = w*math.cos(18*k*math.pi/180-18*j*math.pi/180);
   this["d"+k]._y = m*math.sin(18*k*math.pi/180-18*j*math.pi/180);
 }
  if ((j>40) && (j<=110)) {
   l -= 2.2; //圆的宽每每减2.2
   q -= 1;  //圆的高每每减1
   m += 1.2; //鸭子蛋圆的短轴每每增加1.2
   w -= 1;  //鸭子蛋圆的长轴每每减1
 }
  if ((j>110) && (j<=220)) {
   l += 2; //圆的宽每每加2
   m -= 1.5;//鸭子蛋圆原来的短轴每每减1.2
   w += 0.7;//鸭子蛋圆的长轴每每加0.7
 }
  if ((j>220) && (j<=260)) {
   q += 1;  //圆的高每每加1
   l -= 3.2; //圆的宽每每减3.2
   m–;   //鸭子蛋圆原来的短轴每每减1
 }
  if ((j>260) && (j<=320)) {
   q += 2;  //圆的高每每加2
   m += 2.5; //鸭子蛋圆原来的短轴每每加2.5
   w -= 2;  //鸭子蛋圆的原来的长轴每每减2
 }
  if (j>320 && j<=450) {
  q -= 3.5;  //圆的高每每减3.5
  w += 1.5;  //鸭子蛋圆的原来的长轴每每加1.5
}
  if (j>450 && j<=550) {
  q = -190;  //维持原来圆的高为190
  w = 180;  //维持原来鸭子蛋圆的长轴为180
  rotat = 5; //这处给旋转变量赋值,f_mc的父级mc着手旋转
  scale = 1; //这处给放大系数变量赋值,f_mc的父级mc着手放大
 }
  if (j>550) {
  scale = -1; //f_mc的父级mc反方向放大
  rotat = -5;//f_mc的父级mc反方向旋转
 }
  if (j>650) {
   j = scale=0; //给各变量从新赋初值,使动画循环播放
   l = q=w=130;
   m = 50;
  }
 };

  作业

  a 利用例3.2.2的源手续,复制恣意的21个mc,并把他们平均的安摆放置在正玄函数图象上。如下所述图:

  15110221543151583607607 flash as 初步学会教程 圆和鸭子蛋圆函数的应用

  b 最好能使这个mc摆成下边的正弦图形,况且能左右运动起来。

  15110221543151583607607 flash as 初步学会教程 圆和鸭子蛋圆函数的应用