a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 辦公 > Flash > 正文

Flash AS 入門教程 圓和橢圓函數(shù)的應(yīng)用

2020-07-17 13:13:49
字體:
供稿:網(wǎng)友

  源文件下載

  圓和橢圓函數(shù)

  1、圓的參數(shù)方程:


復(fù)制代碼
代碼如下:

 x=r*cosX //x、y是圓上一點的坐標(biāo);r是圓半徑;
 y=r*sinX //X是圓半徑繞圓心旋轉(zhuǎn)的角度。

  2、橢圓的參數(shù)方程:


復(fù)制代碼
代碼如下:

 x=a*cosX //x、y是橢圓上一點的坐標(biāo);a、b分別是長、短軸
 y=b*sinX //X是橢圓旋轉(zhuǎn)的角度。

  圓和橢圓函數(shù)應(yīng)用舉例

  例 3.3.1 (打開3.3.1.fla文件

  場景中有一個影片剪輯,雙擊這個mc,在這個mc內(nèi),我們看到有兩個小影片剪輯(f_mc,d_mc),寫在第一幀上的腳本:

  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);//放一個復(fù)制的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度放一個復(fù)制的mc
  }

  角度18*k*Math.PI/180中Math.PI/180是把1度轉(zhuǎn)換成的弧度;k取1~20,那么18*k*Math.PI/180就是18度到360度。剛好每隔18度放置一個mc

  按Ctrl+Enter播放,我們可以看到復(fù)制的mc被放置成一個圓和橢圓。作為圓和橢圓,他們是靜止在各自的位置上。如何讓這個圓和橢圓動(旋轉(zhuǎn))起來哩?

  點擊查看動畫效果<

  我們可以這樣考慮,在幀頻事件的循環(huán)中,每循環(huán)一次(j++),使圓(或者橢圓)上的點都再旋轉(zhuǎn)18度(角度都增加18*j度),到達(dá)下一個位置,這樣圓(或者橢圓)就可以旋轉(zhuǎn)起來了。

  由于每一次旋轉(zhuǎn)都是復(fù)制的mc的位置互換,而整體的圖形沒有改變,所以,我們不容易看到圓(或者橢圓)在運動,解決的辦法是把其中的幾個mc的放大系數(shù)改變。

  例 3.3.2

  打開3.3.2.fla文件,比較它與3.3.1.fla文件的腳本的差異,運行3.3.2.fla文件,觀察效果。

  點擊查看動畫效果<

  例 3.3.2源程序:


復(fù)制代碼
代碼如下:

  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;//放大復(fù)制后其中幾個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在幀頻事件的循環(huán)中,每循環(huán)一次影片位置的角度增加18度。-18*j*Math.PI/180與前面方向相反。

  我們使圓和橢圓都旋轉(zhuǎn)運動起來了,我們還可以不斷改變圓的半徑和橢圓的長、短軸,使圓和橢圓互相轉(zhuǎn)換,或者其它的形狀變化。有興趣的可以參見3.3.3.fla文件。

  點擊查看動畫效果<

  例 3.3.3源程序腳本:


復(fù)制代碼
代碼如下:

  j = rotat=scale=0;//設(shè)置計數(shù)變量、旋轉(zhuǎn)角度和放大系數(shù)的初始值為0;
  q = l=w=130;   //設(shè)置圓的半徑和橢圓長軸(開始時的值)
  m = 50;     //設(shè)置橢圓短軸
  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;
   //使復(fù)制的mc中是4個面積變大為4倍
  d5._xscale = d5._yscale=d15._xscale=d15._yscale=50;
this.onEnterFrame = function() {
 this._rotation += rotat;//使(f_mc的)父級mc旋轉(zhuǎn);
 this._xscale -= scale; //放大或者縮?。╢_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; //這里給旋轉(zhuǎn)變量賦值,f_mc的父級mc開始旋轉(zhuǎn)
  scale = 1; //這里給放大系數(shù)變量賦值,f_mc的父級mc開始放大
 }
  if (j>550) {
  scale = -1; //f_mc的父級mc反方向放大
  rotat = -5;//f_mc的父級mc反方向旋轉(zhuǎn)
 }
  if (j>650) {
   j = scale=0; //給各變量重新賦初值,使動畫循環(huán)播放
   l = q=w=130;
   m = 50;
  }
 };

  作業(yè)

  A 利用例3.2.2的源程序,復(fù)制任意的21個mc,并把它們均勻的擺放在正玄函數(shù)圖象上。如下圖:

  點擊查看動畫效果<

  B 最好能使這個mc擺成下面的正弦圖形,并且能左右運動起來。

  點擊查看動畫效果<

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美色综合天天久久综合精品 | 午夜影院在线看 | 玖玖免费 | 99在线视频观看 | 精品日韩中文字幕 | 亚洲日韩欧美一区二区在线 | 国产美女视频黄a视频免费 国产美女在线播放 | 国产精品1区2区3区 国产成人精品一区二区三区四区 | 亚洲一区二区av | 亚洲激情久久 | 一区二区三区观看视频 | 99精品国产高清一区二区麻豆 | 成人av在线播放 | 欧美在线播放一区二区 | 高清精品自拍亚洲 | 四虎av| 国产精品国产成人国产三级 | 日韩 国产 在线 | 97av视频 | 人人干网站| 天天狠天天天天透在线 | 韩国精品视频在线观看 | 一本大道综合伊人精品热热 | 亚洲三级网站 | 97电影在线观看 | 国产在线视频网站 | 国产一级淫片a级aaa | 精品视频久久 | 欧美一区二区三区久久精品 | 国产精品无码永久免费888 | 91成人在线 | 免费av一区 | 亚洲精品美女久久 | 日韩视频一区二区三区 | 国产一区二区三区久久久久久久久 | 欧美午夜精品一区二区三区电影 | 亚洲日本aⅴ片在线观看香蕉 | 玖玖久久 | 亚洲日本乱码一区二区三区 | 久久成人免费视频 | 久草电影网 |