• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Flash ActionScript的機械類教學(xué)模擬課件研制

      2009-07-02 05:29郭德偉肖天慶
      現(xiàn)代教育技術(shù) 2009年8期
      關(guān)鍵詞:曲柄滑塊元件

      郭德偉 肖天慶

      【摘要】采用Flash ActionScript腳本技術(shù)研制了在機械教學(xué)中平面曲柄滑塊機構(gòu)和2K-H型周轉(zhuǎn)輪系的教學(xué)模擬課件,并與傳統(tǒng)的Flash逐幀動畫模擬課件作出分析比較,指出基于Flash ActionScript技術(shù)的動畫模擬方法在機械類教學(xué)課件制作中的優(yōu)越性。

      【關(guān)鍵詞】Flash;ActionScript;模擬課件;機械教學(xué)

      【中圖分類號】G40-057 【文獻標識碼】B 【論文編號】1009—8097(2009)08—0093—05

      隨著現(xiàn)代教育技術(shù)的發(fā)展,采用計算機來制作模擬實驗在教學(xué)中的應(yīng)用越來越廣泛,特別是在學(xué)校實驗條件不足、實驗器材缺少的情況下,采用計算機模擬部分教學(xué)實驗具有簡單、快捷、成本低廉等特點。而在這類實驗教學(xué)模擬課件中,模擬的關(guān)鍵在于與現(xiàn)實環(huán)境的相互一致性,即能精確模擬或再現(xiàn)現(xiàn)實環(huán)境條件下的實驗過程。例如,在學(xué)校機械類課程的教學(xué)中,教學(xué)課件不僅要能實現(xiàn)較精確的模擬運動,還要能夠讓課件具有一定的交互性和仿真性。然而早期的教學(xué)用模擬課件一般采用簡單的逐幀運動模擬,不能完全反映真實情況下的機械運動效果。為此,本文采用Flash ActionScript腳本程序結(jié)合實例詳細介紹了平面曲柄滑塊機構(gòu)教學(xué)模擬課件和2K-H型周轉(zhuǎn)輪系教學(xué)模擬課件的制作過程,并和傳統(tǒng)Flash模擬機械課件作分析比較,指出Flash ActionScript技術(shù)在制作機械類教學(xué)課件中的優(yōu)越性,以期起到拋磚引玉的作用。

      一 傳統(tǒng)Flash模擬平面曲柄滑塊機構(gòu)運動模擬課件的制作方法

      傳統(tǒng)Flash機械教學(xué)課件是利用逐幀動畫的原理,近似地來模擬機構(gòu)的運動,并輔以簡單的控制,如暫停、播放等。平面曲柄滑塊的傳統(tǒng)Flash模擬教學(xué)課件的制作過程如下:

      創(chuàng)建各桿件及滑塊的圖形元件,并按相應(yīng)位置分別放置在Flash主場景中不同的層上,采用補間動畫形式建立動畫,曲柄元件在總幀內(nèi)旋轉(zhuǎn)一周,逐幀調(diào)整連桿元件及滑塊元件的位置和轉(zhuǎn)角使其對應(yīng),在action層的最后幀加gotoAndPlay(2)返回第二幀,形成連續(xù)的運動機構(gòu)模型(圖1),生成的swf動畫模型文件體積約為3KB。其相應(yīng)元件的對應(yīng)關(guān)系是通過鼠標或鍵盤方向鍵調(diào)整,類似桿件設(shè)計的幾何作圖法,存在一定人為操作的誤差,所以該方法僅是機構(gòu)運動的簡單模擬,且運動情況單一,作為機械教學(xué)模擬課件適用范圍略顯不足。

      二 基于Flash ActionScript的平面曲柄滑塊機構(gòu)教學(xué)模擬課件的研制

      基于Flash ActionScript的動畫模擬是利用ActionScript腳本語言結(jié)合Flash軟件本身繪制矢量圖的優(yōu)勢來制作。類似桿件設(shè)計的解析法,制作上述平面曲柄滑塊機構(gòu)的教學(xué)模擬課件必須要了解其運動的規(guī)律。若桿AB為曲柄,長度為l1,BC為連桿,長度為l2,C1、C2為滑塊極限位置, H為滑塊的行程,e為偏距(圖2)。根據(jù)機構(gòu)運動的原理[1],當(dāng)曲柄AB勻速轉(zhuǎn)動,各節(jié)點、滑塊及角度 和 之間有如下關(guān)系:

      A點的坐標為 ,則

      B點的坐標為;

      C點的坐標為 , ;

      C1點的坐標為 , ;

      C2點的坐標為 , ;

      行程 ;

      角度 和 之間關(guān)系有;

      滑塊的坐標即為點C的坐標;

      為保證運動可行性,兩桿長度還必須有 的關(guān)系。

      根據(jù)以上關(guān)系,設(shè)計出平面曲柄滑塊機構(gòu)的動畫模型,可以根據(jù)輸入不同的曲柄和連桿的長度和偏距來觀察機構(gòu)不同的運動變化情況,并顯示不同狀態(tài)下滑塊的行程,且曲柄的轉(zhuǎn)速可調(diào)。其制作過程如下:

      在Flash中分別創(chuàng)建一個小圓點(節(jié)點)的影片剪輯元件和滑塊影片剪輯元件,放置在Flash主場景中并分別命名為“da”和“hk”;繪制4個輸入文本框和1個動態(tài)文本框,分別定義為“sd”、“qb”、“l(fā)g” 、“pxj”和“H”,表示輸入的速度值、曲柄長度值、連桿長度值和顯示行程的值;點A、B、C、C1和C2的坐標分別表示為“xa”、“ya”、“xb”、“yb”、“xc”、“yc”、“xc1”、“yc1”和“xc2”、“yc2”;Flash公用庫中引入3個按鈕,分別用于確認輸入數(shù)值和控制運動的播放(命名為“anp”)和暫停(命名為“ans”)(圖3)。注意Flash中的y坐標軸正向向下,具體ActionScript程序如下:

      主場景第一幀上的程序:

      this.anp._visible = 0;//隱藏播放按鈕

      this.ans._visible = 1;//顯示暫停按鈕

      this.jg._visible=0;//隱藏輸入警告

      xa = this.da._x;

      ya = this.da._y;//將xa和ya表示為點A的坐標值

      i = 90;//定義曲柄初始角度

      v = 5;//定義曲柄初始轉(zhuǎn)速

      l1 = 100;//定義曲柄初始長度,用l1表示

      l2 = 200;//定義連桿初始長度,用l2表示

      e=0;//定義偏距初始值,用e表示

      duplicateMovieClip(this.da, "db", 2);//生成點B

      this.db._x = xa+l1*Math.cos(i*Math.PI*1.0E+00/180);

      this.db._y = ya+l1*Math.sin(i*Math.PI*1.0E+00/180);

      //定義點B的初始位置

      xb = this.db._x;

      yb = this.db._y;//將xb和yb表示為點B的坐標值

      duplicateMovieClip(this.da, "dc1", 3);//生成點C1

      this.dc1._alpha = 50;//改變點C1的透明度為50%

      this.dc1._x = xa+(l2-l1);

      this.dc1._y = ya+e;

      //定義點C1的初始位置

      duplicateMovieClip(this.dc1, "dc2", 4);//生成點C2

      this.dc2._x = xa+(l2+l1);

      this.dc2._y = ya+e;

      //定義點C2的初始位置

      H = this.dc2._x-this.dc1._x;

      //將H表示為行程并顯示在文本框H中

      duplicateMovieClip(this.da, "dc", 5);//生成點C

      this.dc._x = xb+l2*Math.cos(Math.acos(l1*Math.sin(Math.atan((xb-xa)/(yb-ya)))/l2));

      this.dc._y = ya;//定義點C的初始位置

      this.hk._x = this.dc._x;

      this.hk._y = this.dc._y;

      //定義滑塊的初始位置,即為點C的位置

      this.pj._y = ya+e;

      主場景第二幀上的程序:

      this.dc1._x = xa+Math.sqrt(Math.pow((l2-l1), 2)-Math.pow(e, 2));

      this.dc1._y = ya+e;

      this.dc2._x = xa+Math.sqrt(Math.pow((l2+l1), 2)-Math.pow(e, 2));

      this.dc2._y = ya+e;

      this.pj._y = ya+e;

      H = Math.round((this.dc2._x-this.dc1._x)*100)/100;

      //將H表示為行程并顯示在文本框H中(保留兩位小數(shù))

      xb = xa+l1*Math.sin(i*Math.PI*1.0E+00/180);

      yb = ya-l1*Math.cos(i*Math.PI*1.0E+00/180);

      this.dc._x = xb+Math.sqrt(Math.pow(l2, 2)-Math.pow((ya-yb+e), 2));

      this.dc._y=ya+e;

      xc = this.dc._x;

      yc = this.dc._y;

      this.hk._x = xc;

      this.hk._y = yc;

      this.pj._y = yc;

      this.createEmptyMovieClip("gan", 1);

      gan.lineStyle(5, 0x333333, 100);

      gan.moveTo(xa, ya);

      gan.lineTo(xb, yb);

      gan.lineTo(xc, yc);//繪制曲柄和連桿

      this.db._x = xb;

      this.db._y = yb;

      if (i>=360) { i = 0;}

      i = i+v;

      主場景第三幀上的程序:

      gan.clear();

      gotoAndPlay(2);

      按鈕上的ActionScript程序如下:

      輸入確定按鈕

      on (release, keyPress "") {

      //將文本框中輸入的數(shù)值賦給對應(yīng)的值

      v = Number(sd);

      l1 = Number(qb);

      l2 = Number(lg);

      e= Number(pxj);

      if (l2

      this.jg._visible = 1;

      l2 = l1;

      e=0;

      } else {

      this.jg._visible = 0;

      }

      }

      播放按鈕

      on (release) {

      play();

      this.anp._visible = 0;

      this.ans._visible = 1;

      }

      暫停按鈕

      on (release) {

      stop();

      this.anp._visible = 1;

      this.ans._visible = 0;

      }

      制作成的教學(xué)模擬課件如圖3 所示,生成的swf動畫文件體積約為8KB。該模擬課件可以顯示機構(gòu)在不同條件下的運動情況,如正反轉(zhuǎn)和急回特性等,運動較為精確,課件具有一定的可調(diào)節(jié)性,如各桿長度、偏距、速度等可自行輸入,比傳統(tǒng)Flash模擬的平面曲柄滑塊機構(gòu)課件有了更好的交互性能,更有利于其作為教學(xué)模擬課件的應(yīng)用。

      三 基于Flash ActionScript的2K-H型周轉(zhuǎn)輪系模擬課件的研制

      周轉(zhuǎn)輪系的傳動比問題一直是學(xué)生在學(xué)習(xí)機械基礎(chǔ)課程的難點,很多學(xué)生不能在思想上形成最初的機構(gòu)模型。若采用傳統(tǒng)Flash模擬動畫制作該教學(xué)模擬課件,其中包括行星輪系和差動輪系,至少需要制作兩個課件,而采用ActionScript程序,則僅用一個教學(xué)模擬課件就可以實現(xiàn)包括周轉(zhuǎn)輪系的轉(zhuǎn)化等這部分知識在內(nèi)的教學(xué)需要。

      制作這樣的教學(xué)模擬課件,同樣必須先了解該機構(gòu)的運動規(guī)律。圖4是最常見的2K-H型周轉(zhuǎn)輪系,根據(jù)周轉(zhuǎn)輪系的轉(zhuǎn)化原理[1],各個參數(shù)之間有如下關(guān)系:

      該周轉(zhuǎn)輪系自由度 ,機構(gòu)要有確定的運動必須有兩個已知條件,考慮到教學(xué)的需要,將 和 作為已知條件輸入,來調(diào)節(jié)周轉(zhuǎn)輪系的運動情況,其制作過程如下:

      在Flash中分別創(chuàng)建各個零件的影片剪輯元件和各控制按鈕元件(圖5),添加一個影片剪輯元件將轉(zhuǎn)臂和行星輪元件放在一起,命名為“H”,將分別表示中心輪、內(nèi)齒輪、行星輪和轉(zhuǎn)臂的“l(fā)1”、“l(fā)3”、“l(fā)2”和“H”各元件按相應(yīng)位置放置在Flash主場景中,其中中心輪、內(nèi)齒輪和行星輪的齒數(shù)分別為21、57和18,模數(shù)取10個像素,“n1”、“n2”、“n3”和“nH”分別表示各構(gòu)件的轉(zhuǎn)速,“fdy”表示各輪的分度圓;將分別控制分度圓顯示、數(shù)據(jù)輸入說明顯示和數(shù)據(jù)輸入確認等按鈕及其輔助元件也按相應(yīng)位置放在Flash主場景中并給以命名。具體ActionScript程序如下:

      主場景第一幀上的程序:

      n1 = 0;

      n3 = 0;

      z1 = 21;

      z2 = 18;

      z3 = 57;

      nH = 0;

      //定義各初始值

      this.srjg._visible = 0;//隱藏數(shù)據(jù)輸入警告

      this.srsm._visible = 0;//隱藏數(shù)據(jù)輸入說明

      stop();

      主場景第二幀上的程序:

      this.l1._rotation = n1;//中心輪的轉(zhuǎn)角

      this.l3._rotation = n3;//內(nèi)齒輪的轉(zhuǎn)角

      nH = (z1*n1+z3*n3)/(z1+z3);

      this.H._rotation = nH;//轉(zhuǎn)臂的轉(zhuǎn)角

      this.H.l2._rotation=(n3-nH)*z3/z2;

      //行星齒輪相對轉(zhuǎn)臂的轉(zhuǎn)角

      n1 = n1+i;

      n3 = n3+j;

      主場景第三幀上的程序:

      gotoAndPlay(2);

      各控制按鈕上的ActionScript程序

      使用說明按鈕(顯示數(shù)據(jù)輸入說明)

      on (release) {

      this.srsm._visible = 1;

      }

      關(guān)閉說明按鈕(關(guān)閉說明和數(shù)據(jù)輸入說明在同一個元件中)

      on (release) {

      this._visible = 0;

      }

      顯示分度圓按鈕

      on (release) {

      this.l1.fdy._visible=1;

      this.H.l2.fdy._visible=1;

      this.l3.fdy._visible=1;

      this.ycfdy._visible=1;

      this.xsfdy._visible=0;

      }

      隱藏分度圓按鈕

      on (release) {

      this.l1.fdy._visible=0;

      this.H.l2.fdy._visible=0;

      this.l3.fdy._visible=0;

      this.ycfdy._visible=0;

      this.xsfdy._visible=1;

      }

      數(shù)據(jù)輸入確認按鈕

      on (release, keyPress "") {

      i = Number(t1);

      j = Number(t2);

      play();

      if (i>10 || i<-10 || j>3 || j<-3) {

      i = 0;

      j = 0;

      this.srjg._visible = 1;

      } else {

      this.srjg._visible = 0;

      }

      }

      制作成的教學(xué)模擬課件如圖5 所示,生成的swf動畫文件體積約為25KB。該模擬課件可以顯示周轉(zhuǎn)輪系在不同速度條件下的運動情況,例如輸入負值該輪將實現(xiàn)反轉(zhuǎn),輸入數(shù)值“0”則停止轉(zhuǎn)動(自由度變?yōu)?),課件具有一定的可調(diào)節(jié)性,可模擬真實環(huán)境下的機構(gòu)運動情況,作為教師課堂教學(xué)實驗效果更佳。

      四 結(jié)束語

      在現(xiàn)代教學(xué)中,傳統(tǒng)的模擬教學(xué)課件已經(jīng)遠遠不能滿足現(xiàn)代教學(xué)的要求,這對教學(xué)方式和教師等都提出了更高的要求,所以對于教學(xué)模擬課件的研制有著極為重要的意義。而這種基于Flash ActionScript的機械類教學(xué)模擬課件,不但動畫體積占用空間小、畫面質(zhì)量高,還能實現(xiàn)機構(gòu)運動的精確模擬,根據(jù)實際情況或教學(xué)的需要可以實現(xiàn)更好的交互性能,使教學(xué)模擬課件具有較高的仿真性;可以實現(xiàn)機構(gòu)中特殊位置運動的軌跡再現(xiàn),使教學(xué)模擬課件同時也具有了一定研究性;可以實現(xiàn)不同條件下(位置、角度、長度、速度等)機構(gòu)不同的機械運動特性,大大提高了教學(xué)模擬課件的適用性和廣泛性。

      猜你喜歡
      曲柄滑塊元件
      KD504:一種自動擺放臺球機器人
      汽車發(fā)動機曲柄連桿結(jié)構(gòu)異響的故障檢測
      “滑塊”模型題解題方略
      門把手消毒滑塊
      如何讀懂色環(huán)電阻
      非線性元件的處理
      民用飛機曲柄—滑軌式襟翼操縱載荷分析技術(shù)研究
      不只硬 還很輕
      上海風(fēng)云“東邪”誰屬
      Protel?。梗梗螅寰W(wǎng)絡(luò)表裝載中糾錯探索
      寻甸| 丹东市| 韶关市| 龙井市| 兖州市| 华安县| 锡林浩特市| 宜良县| 阳朔县| 宣威市| 垣曲县| 遂宁市| 卢湾区| 东辽县| 土默特右旗| 安吉县| 江油市| 宣汉县| 应用必备| 女性| 东山县| 台湾省| 波密县| 巴林左旗| 西峡县| 兴山县| 安庆市| 清苑县| 舞钢市| 京山县| 祁连县| 常山县| 灵台县| 德阳市| 郎溪县| 阿瓦提县| 嘉兴市| 昌江| 崇明县| 永春县| 容城县|