亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FLASH AS 3的曲柄搖桿機(jī)構(gòu)動(dòng)畫制作與分析

        2015-05-30 12:11:16邵永錄
        關(guān)鍵詞:腳本語(yǔ)言動(dòng)畫制作

        邵永錄

        摘要:本文從機(jī)械設(shè)計(jì)課程教學(xué)的實(shí)際出發(fā),結(jié)合FLASH動(dòng)畫技術(shù)的應(yīng)用,研究了機(jī)械設(shè)計(jì)課程當(dāng)中曲柄搖桿機(jī)構(gòu)中難以理解的結(jié)構(gòu)與運(yùn)動(dòng)關(guān)系,并分析了具體的動(dòng)畫制作過(guò)程。

        關(guān)鍵詞:腳本語(yǔ)言? 動(dòng)畫制作? 曲柄搖桿機(jī)構(gòu)? 運(yùn)動(dòng)分析

        1 基礎(chǔ)知識(shí)認(rèn)知

        1.1 素材獲取

        用于制作縮放的圖片文件應(yīng)該是矢量圖,文件可以使用矢量圖軟件制作而獲取,常用FALSH自身所具備的繪圖工具就可以完成相關(guān)的素材獲取,將獲取的圖形對(duì)象修改為影片剪輯。

        1.2 腳本語(yǔ)言基礎(chǔ)

        本次研究以Flash Action Script3.0為語(yǔ)言基礎(chǔ)。先介紹相關(guān)圖形對(duì)象的屬性。

        .x——相對(duì)于父級(jí)影片剪輯的本地坐標(biāo)的x坐標(biāo)。如果影片剪輯在主時(shí)間軸中,則其坐標(biāo)系統(tǒng)將舞臺(tái)的左上角指定為(0,0)。

        .y——相對(duì)于父級(jí)影片剪輯的本地坐標(biāo)的y坐標(biāo)。如果影片剪輯在主時(shí)間軸中,則其坐標(biāo)系統(tǒng)將舞臺(tái)的左上角指定為(0,0)。

        .rotation——確定影片剪輯從注冊(cè)點(diǎn)開(kāi)始的影片剪輯旋轉(zhuǎn)的角度。

        Math.sin()——正弦三角函數(shù),單位為弧度。

        Math.asin()——反正弦三角函數(shù),單位為角度。

        Maht.pow()——此函數(shù)為求一個(gè)數(shù)a的b次冪,如:Maht.pow(a,b)。

        Graphics.moveTo(x,y)——繪制直線的起點(diǎn)。

        Graphics.lineTo(x,y)——繪制直線的停止點(diǎn)。

        Graphics.lineStyle (6,0x00ffff,1,true,"")——指定一種線條樣式以用于隨后對(duì)直線或圓等繪制時(shí)的線寬、顏色等。

        Graphics.clear()——清除直線、圓等圖形;本文中用于清除上一次創(chuàng)建的直線圖形對(duì)象。

        SetTimeout(myclear,20)——用于延時(shí)功能的函數(shù)。

        setInterval()——setInterval函數(shù)的作用是在播放動(dòng)畫的時(shí)候,每隔一定時(shí)間就調(diào)用一次參數(shù)。

        ClearInterval(sh)——用于清除setInterval()函數(shù)的調(diào)用循環(huán)。

        1.3 四桿機(jī)構(gòu)中曲柄、連桿與搖桿間的角度關(guān)系

        使用平面幾何三角圖形中的余弦定理與反余弦函數(shù),則可建立機(jī)構(gòu)運(yùn)動(dòng)中的各個(gè)角度關(guān)系。

        c2=a2+b2-2abcosC

        C=arccos[(a2+b2-c2)/2ab]

        2 動(dòng)畫制作過(guò)程研究

        2.1 初始化舞臺(tái)環(huán)境

        首先,設(shè)置舞臺(tái)尺寸為550×400像素,然后聲明四個(gè)桿件的長(zhǎng)度與四個(gè)桿件各自注冊(cè)點(diǎn)(坐標(biāo)參考點(diǎn))的坐標(biāo);即分別為37.5,125,200,

        235.75,且將四個(gè)桿的注冊(cè)點(diǎn)坐標(biāo)設(shè)置為“ax,ay”,“bx,by”,“cx,cy”,“dx,dy”,再設(shè)置b與c桿鉸接點(diǎn)坐標(biāo)為“cx2,cy2”。

        參照原四桿機(jī)構(gòu)固定支點(diǎn)位置,設(shè)置初始兩點(diǎn)坐標(biāo)。如設(shè)計(jì)曲柄注冊(cè)點(diǎn)(回轉(zhuǎn)中心為“200,100”),則搖桿回轉(zhuǎn)支點(diǎn)坐標(biāo)為(325,300),在時(shí)間軸第一幀處寫入初始化腳本程序如下:

        var a:Number = 37.5;//定義a桿及其長(zhǎng)度;

        var b :Number = 125; //定義b桿及其長(zhǎng)度;

        var c:Number = 200; //定義c桿及其長(zhǎng)度;

        var d :Number = 235.75; //定義d桿及其長(zhǎng)度;

        ax:Number = 150; //定義a桿注冊(cè)點(diǎn)x坐標(biāo);

        ay:Number = 150; //定義a桿注冊(cè)點(diǎn)y坐標(biāo);

        bx:Number; //定義b桿注冊(cè)點(diǎn)x坐標(biāo);

        by:Number; //定義b桿注冊(cè)點(diǎn)y坐標(biāo);

        cx:Number = 375; //定義c桿注冊(cè)點(diǎn)x坐標(biāo);

        cy:Number = 350; //定義c桿注冊(cè)點(diǎn)y坐標(biāo);

        cx2:Number ; //定義b與c桿鉸接點(diǎn)x坐標(biāo);

        cy2:Number;? //定義b與c桿鉸接點(diǎn)y坐標(biāo);s

        曲柄的定角轉(zhuǎn)動(dòng)程序如下:

        var jd:Number = 0

        function aa()

        {

        jd = jd +5;

        jd %=? 360;

        ……

        }

        setInterval(aa,10);

        2.2 求取各注冊(cè)點(diǎn)坐標(biāo)公式

        曲柄a的注冊(cè)點(diǎn)采取給定方式,根據(jù)舞臺(tái)大小,自行確定其坐標(biāo)。

        ax=150

        ay=150

        連桿b的注冊(cè)點(diǎn)位置由曲柄的與連桿連接端決定,角度通過(guò)余弦定理與反余弦求解而出,程序如下:

        bx= ax+a*Math.cos(jd*Math.PI/180);

        by =ay-a*Math.sin(jd*Math.PI/180);

        搖桿c的注冊(cè)點(diǎn)位置由連架桿的固定端點(diǎn)決定,程序如下:

        cx=ax+d;

        cy=ay;

        連架桿d的注冊(cè)點(diǎn)與曲柄a的注冊(cè)點(diǎn)重合,所以坐標(biāo)與a曲柄的注冊(cè)點(diǎn)坐標(biāo)相同。

        ax=dx=150

        ay=dy=150

        要求取b與c兩桿的交點(diǎn)坐標(biāo),就必須使用余弦定理與反三角函數(shù),推動(dòng)過(guò)程較復(fù)雜,此處僅列出相應(yīng)的代碼程序。

        e=Math.sqrt(Math.pow(a,2)+Math.pow(d,2)-2*

        a*d*Math.cos(jd*Math.PI/180));

        wj=Math.acos((Math.pow(e,2)+Math.pow(d,2)-Math.pow(a,2))/(2*e*d))*180/Math.PI;

        kj=Math.acos((Math.pow(b,2)+Math.pow(e,2)-Math.pow(c, 2))/(2*b*e))*180/Math.PI;

        如果就這樣直接獲取a桿與c桿的轉(zhuǎn)角還是會(huì)發(fā)生錯(cuò)誤的。原因在于當(dāng)曲柄旋轉(zhuǎn)時(shí),會(huì)造成與連架桿的夾角時(shí)而為正,時(shí)而為負(fù)。

        腳本制作中,采用IF()語(yǔ)句來(lái)分別判斷曲柄旋轉(zhuǎn)過(guò)程中對(duì)連桿b與水平正向的夾角受到連桿與BD連線夾角KJ,以及AD與BD夾角WJ的不同影響關(guān)系。

        if (jd<=180){

        w =? kj- wj;

        }else{

        w =? wj+ kj;

        }

        cx2 = bx+b * Math.cos(w*Math.PI/180);

        cy2 = by-b * Math.sin(w*Math.PI/180);

        2.3 繪制曲柄搖桿機(jī)構(gòu)圖形

        此曲柄搖桿機(jī)構(gòu)采用Action Script 3的Graphics繪制圖形命令來(lái)進(jìn)行,具體繪制四桿程序如下:

        var lina:Shape=new Shape();

        lina.graphics.moveTo(ax,ay);

        lina.graphics.lineStyle(6,0x00ffff,1,true,"");

        lina.graphics.lineTo(bx,by);

        addChild(lina);//曲柄a

        var linb:Shape=new Shape();

        linb.graphics.moveTo(bx,by);

        linb.graphics.lineStyle(6,0xffff00,1,true,"");

        linb.graphics.lineTo(cx2,cy2);

        addChild(linb);//連桿b

        var linc:Shape=new Shape();

        linc.graphics.moveTo(cx,cy);

        linc.graphics.lineStyle(6,0x00ff00,1,true,"");

        linc.graphics.lineTo(cx2,cy2);

        addChild(linc);//搖桿c

        var lind:Shape=new Shape();

        lind.graphics.moveTo(ax,ay);

        lind.graphics.lineStyle(6,0xff0000,1,true,"");

        lind.graphics.lineTo(dx,dy);

        addChild(lind);//連架桿d

        接下來(lái)繪制4個(gè)注冊(cè)點(diǎn)(也稱鉸接點(diǎn))。

        var cir1:Shape=new Shape();

        cir1.graphics.beginFill(0xff0ff0);

        cir1.graphics.drawCircle(ax,ay,6);

        cir1.graphics.endFill();

        addChild(cir1);//圓a

        var cir2:Shape=new Shape();

        cir2.graphics.beginFill(0xff0ff0);

        cir2.graphics.drawCircle(bx,by,6);

        cir2.graphics.endFill();

        addChild(cir2);//圓b

        var cir3:Shape=new Shape();

        cir3.graphics.beginFill(0xff0ff0);

        cir3.graphics.drawCircle(cx2,cy2,6);

        cir3.graphics.endFill();

        addChild(cir3);//圓c

        var cir4:Shape=new Shape();

        cir4.graphics.beginFill(0xff0ff0);

        cir4.graphics.drawCircle(cx,cy,6);

        cir4.graphics.endFill();

        addChild(cir4);//圓d

        2.4 動(dòng)態(tài)曲柄搖桿機(jī)構(gòu)的獲取

        延時(shí)清除與使用setInterval()每隔一定時(shí)間調(diào)用一次自定義函數(shù)aa(),注意將setTimeout()的時(shí)間與setInterval()的時(shí)間設(shè)置成相同值,從而保證桿件轉(zhuǎn)動(dòng)效果的連貫性。

        setTimeout(myclear,20);//延時(shí)函數(shù)

        function myclear()

        {//延時(shí)清除畫線!

        lina.graphics.clear();

        linb.graphics.clear();

        linc.graphics.clear();

        lind.graphics.clear();

        cir2.graphics.clear();

        cir3.graphics.clear();

        cir1.graphics.clear();

        cir4.graphics.clear();

        }

        }//以上程序內(nèi)容全部在自定義函數(shù)aa()當(dāng)中。

        接下來(lái)便是使用setInterval()函數(shù)來(lái)按時(shí)調(diào)用aa()自定義函數(shù),程序設(shè)置如下。

        sh = setInterval(aa,20);

        2.5 影片輸出與應(yīng)用

        將Flash文件導(dǎo)出生成.swf格式動(dòng)畫文件,然后就可以在PowerPoint軟件下的控制工具箱中的Shockware Flash Object將此動(dòng)畫文件導(dǎo)入到PPT中。播放PPT,就可以更好地為課堂教學(xué)服務(wù)了。

        3 總結(jié)

        利用Flash Action Script3.0強(qiáng)大的腳本語(yǔ)言工具,結(jié)合相關(guān)的機(jī)械設(shè)計(jì)原理知識(shí),全部使用腳本代碼程序,可以制作出清晰、精彩的機(jī)械機(jī)構(gòu)動(dòng)畫文件。

        參考文獻(xiàn):

        [1]陳志民.Adobe創(chuàng)意大學(xué)Flash CS6標(biāo)準(zhǔn)教材[M].北京希望電子出版社,2013.4.

        [2]張佳麗.Flash CS6中文版動(dòng)畫制作標(biāo)準(zhǔn)教程[M].中國(guó)青年出版社,2013.7.

        [3]嚴(yán)嚴(yán).Flash CS6中文版完全學(xué)習(xí)手冊(cè)[M].人民郵電出版社,2013.3.

        猜你喜歡
        腳本語(yǔ)言動(dòng)畫制作
        淺談自動(dòng)編程后處理插件與機(jī)床匹配
        一種面向SSC的電信增值業(yè)務(wù)的生成方法及實(shí)現(xiàn)
        基于Unity3D的坦克大戰(zhàn)游戲設(shè)計(jì)與實(shí)現(xiàn)
        淺談宮崎駿的動(dòng)畫理念
        中職《動(dòng)畫制作》課程微課設(shè)計(jì)策略
        淺析三維角色動(dòng)畫制作的關(guān)鍵技術(shù)
        Flash設(shè)計(jì)大賽與Flash動(dòng)畫制作課程相互融通的探索
        基于校企雙贏模式的flash動(dòng)畫制作課程延展性研究
        動(dòng)畫制作中后期制作技術(shù)的應(yīng)用
        科技傳播(2016年7期)2016-04-28 22:21:40
        淺析計(jì)算機(jī)技術(shù)在flash動(dòng)畫中的應(yīng)用
        国产一级内射视频在线观看| 亚洲综合偷自成人网第页色| 国内精品久久久久国产盗摄 | 成人一区二区免费视频| 国产偷2018在线观看午夜| 性感人妻一区二区三区| 婷婷开心五月亚洲综合| 国产 一二三四五六| 色噜噜狠狠狠综合曰曰曰| 久久天天躁狠狠躁夜夜爽| 第九色区Aⅴ天堂| 免费av一区男人的天堂| 亚洲中文字幕舔尻av网站| 天天躁夜夜躁狠狠躁2021| 成人无码区免费a片www| 亚洲色欲色欲欲www在线| 国产丝袜美腿嫩模视频诱惑| 亚洲av久播在线一区二区| 人妻少妇精品中文字幕专区| 美女脱了内裤张开腿让男人桶网站| 精品久久久久久777米琪桃花| 国产成人啪精品视频免费网| 白浆高潮国产免费一区二区三区 | 特级国产一区二区三区| 久久精品网站免费观看| 精品少妇人妻av无码专区| 免费看奶头视频的网站| 国产内射视频在线观看| 日本五十路人妻在线一区二区| 无码人妻aⅴ一区二区三区| 色一情一乱一伦一区二区三区| www.亚洲天堂.com| 99久久精品人妻一区二区三区| 国产激情久久久久久熟女老人| 国产高潮刺激叫喊视频| 成 人 网 站 在线 看 免费| 国产午夜在线观看视频| 亚洲国产精品高清一区| 色综合视频一区中文字幕| 亚洲制服无码一区二区三区| 麻豆国产成人AV网|