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

        ?

        基于ActionScript的極坐標曲線的動態(tài)生成方法

        2020-12-28 02:10:22黃紹龍曹建立
        電腦知識與技術 2020年33期

        黃紹龍 曹建立

        摘要:本文以帕斯卡蝸線為例,介紹了在Flash中使用動作腳本動態(tài)生成極坐標曲線的方法。

        關鍵詞:極坐標方程;帕斯卡蝸線;曲線;動作腳本

        中圖分類號:G642 文獻標識碼:A

        文章編號:1009-3044(2020)33-0206-03

        開放科學(資源服務)標識碼(OSID):

        1 引言

        高等數(shù)學中的一些常見曲線通常以極坐標方程的形式給出。曲線的極坐標方程使用極徑和極角的關系來刻畫曲線。若能將極坐標方程對應的極坐標曲線的繪制過程動態(tài)地顯示出來,則學習者可以直觀地觀察曲線的變化規(guī)律和特點。二維動畫設計軟件Flash中的動作腳本擁有豐富的數(shù)學類方法和強大的動畫處理機制,非常適合動態(tài)生成極坐標曲線并進行演示。

        2 計算機圖形學繪制極坐標曲線的方法

        在計算機圖形學中一般采用“化曲為直”的方法實現(xiàn)曲線的繪制。計算機圖形軟件包通常會提供線段的繪制函數(shù),可以使用小線段逼近的方法實現(xiàn)曲線的繪制。

        根據(jù)參數(shù)極坐標方程,可以由極角計算極徑,再由極角和極徑將點的極坐標轉(zhuǎn)換為笛卡爾坐標。選擇合適的固定步長沿著曲線路徑計算曲線上點的坐標,使用這些點作為逼近真實曲線的小線段的端點,逐段連續(xù)地繪制小線段可以展示曲線的繪制過程并最終實現(xiàn)曲線的近似表示。

        3 利用動作腳本動態(tài)繪制極坐標曲線

        極坐標方程表示的曲線有很多種,但是使用動作腳本動態(tài)生成這些曲線的方法是類似的。帕斯卡蝸線的極坐標方程表示的曲線根據(jù)參數(shù)取值的不同呈現(xiàn)出不同的形態(tài),特征明顯,易于讀者進行觀察。所以下面以帕斯卡蝸線為例來詳細介紹動作腳本動態(tài)繪制極坐標曲線的一般方法。這里的后臺腳本使用的是ActionScript 2.0版本。

        3.1 帕斯卡蝸線的極坐標方程及曲線特點

        帕斯卡蝸線的極坐標方程是r= acosθ+b,它表示的曲線具有以下3個特點:

        (1)關于極軸對稱;

        (2)具有周期性,周期是2π。故在一個周期上即可得到完整的曲線;

        (3)a和b兩個參數(shù)在a>b,a=b,a

        可以看到,圖1中間的圖形是心形線,它是蝸形線在參數(shù)a=b時的特殊情況;若a比b多的程度越大,則曲線左側(cè)的內(nèi)環(huán)越大,如圖1的最左側(cè)圖形;若b比a多的程度越大,則曲線左側(cè)邊緣相對心形線左側(cè)尖點向外突出,如圖1中的最右側(cè)圖形。參數(shù)a和b的大小關系使帕斯卡蝸線種類有明顯的可區(qū)分性。

        3.2 動作腳本相關知識

        1)MovieClip類

        (1)使用createEmptyMovieClip方法創(chuàng)建空的影片剪輯;

        (2)使用lineStyle方法設置繪制線段的線寬、顏色和透明度;

        (3)使用moveTo方法移動畫筆到指定點;

        (4)使用lineTo方法繪制從當前點到指定點的線段。

        2)Math類

        (1)使用sin方法和cos方法計算以弧度單位表示的角度的正弦值和余弦值;

        (2)使用符號常量PI表示圓周率常數(shù)。

        3) onEnterFrame事件

        曲線在繪制過程中隨著時間不斷向前生長,如果曲線要能夠動態(tài)地、均勻地顯示整個繪制的過程,那么需要每一步生長后留下固定的時間間隔,刷新顯示當前曲線的最新繪制狀態(tài)。如果沒有留下時間間隔,計算機的運行速度很快,曲線瞬間繪制完畢,用戶只能看到最終的完整曲線,而繪制的過程無法觀察到。時間間隔是留給用戶的觀察時間,它的原理類似于電視機上放慢鏡頭。

        動作腳本中的onEnterFrame事件每進入一幀就進行檢查,可以用來解決時間間隔的問題。將繪圖功能定義在onEnter-Frame事件的處理函數(shù)中,每進入一幀,繪圖參數(shù)就增加一個步長,圖形就向前生長一段(即繪制一段新的小線段),直到整個曲線繪制完畢。這樣一來,圖形生長的時間間隔就是幀頻倒數(shù)個秒的時間。從觀察者的角度看,整個曲線動態(tài)繪制的過程就被逐漸呈現(xiàn)出來了。

        繪制的速度和幀頻相關,幀頻的值越大曲線的繪制速度越快。曲線的平滑程度和選擇的步長相關,步長越小越平滑。在幀頻確定的情況下,步長越小繪制的速度越慢。

        4)計算機圖形坐標系統(tǒng)與幾何坐標系統(tǒng)的差別

        在幾何學中,y坐標軸是豎直向上的,而計算機圖形系統(tǒng)的y軸是豎直向下的,這就使得在舞臺上繪制出來的圖形和幾何教科書上的不同,是上下顛倒著的。所以,為了能與常見幾何圖形保持形態(tài)上的一致,計算出來的線段端點不直接作為繪圖的參數(shù),而是取縱坐標相反數(shù)作為端點坐標進行繪制。

        3.3 動作腳本的繪圖實現(xiàn)

        在Flash文件中設置幀頻為24幀/秒,所以每一幀的時間間隔是1/24秒。整個動畫只使用一個圖層。首先在圖層上布置組件:(l)添加兩個輸入文本框,用來接收用戶設置的帕斯卡蝸線的參數(shù)a和b的值,將兩個輸入文本框分別命名為aa和bb;(2)添加一個動態(tài)文本框,用來在曲線的繪制過程中實時顯示參數(shù)θ的當前值(以度為單位),對應的變量名為angle; (3)添加一個按鈕,用戶通過點擊按鈕來觸發(fā)定義在按鈕上的onEnter-Frame事件處理函數(shù)的繪圖功能。然后添加動作腳本如下。

        1)第1關鍵幀上添加的代碼是進行必要的初始化操作。

        //設置由度單位轉(zhuǎn)換為弧度單位的系數(shù)

        var per= 180/Math.PI;

        //設置一個周期

        var two_PI=2*Math.PI;

        //舞臺上的輸入文本框aa、bb分別設置曲線參數(shù)。,6的值,默認值是150,60

        aa.text= 150; bb.text= 60;

        //動態(tài)文本框的變量angle顯示參數(shù)θ的當前度數(shù)值,初始值是0

        angle=0;

        2)添加在按鈕上的代碼實現(xiàn)極坐標曲線的動態(tài)繪制,設置單擊按鈕動作進行觸發(fā)。

        on (press){

        //設置存儲極徑、極角、極角步長的變量

        var r, theta, dtheta=1/20;

        //i賣取輸入文本框中設定的參數(shù)。和6的值

        var a=Number(aa.text),b=Number(bb.text);

        //創(chuàng)建空的影片剪輯n- mc

        createEmptyMovieClip(”n—mc”,1);

        ///設置影片剪輯左上角在舞臺中的位置

        n_mc._x= 100; n_mc._y= 200;

        //移動畫筆到極角為0時曲線對應的笛卡爾坐標位置,即起始點

        n_mc.moveTo(a+b,0);

        //設置線型

        n_mc.lineStyle (3,Ox000000,100);

        //設置極角的初始值

        theta= dtheta;

        n_mc.onEnterFrame= function0

        { ,/動態(tài)文本框中實時顯示當前繪制點對應的極角度數(shù)值

        angle= Math.floor(per * theta); //計算當前的極徑并將極坐標轉(zhuǎn)換為笛卡爾坐標

        r=a*Math.cos(theta)+b;

        x=r* Math.cos(theta);

        y=r * Math.sin(theta);

        //繪制曲線的下一條小線段,使其向前生長

        this.lineTo(x,-y);

        //繪制一個周期即可得到完整的帕斯卡蝸線

        if (theta< two_PI)

        {theta+=dthetaj};)

        圖2顯示了參數(shù)o= 150,b= 60時的帕斯卡蝸線的動態(tài)生成過程,其中theta后面的動態(tài)文本框?qū)崟r顯示當前繪制點對應的蝸線極坐標方程中參數(shù)θ的值。改變參數(shù)a,b的值可以動態(tài)生成圖1所示的另外兩種類型的帕斯卡蝸線。

        為了更加直觀地比較帕斯卡蝸線在不同參數(shù)下的形態(tài),可以將這些不同參數(shù)的曲線在同一影片剪輯的不同圖層上進行顯示。如圖3顯示了當a以步長20從150變化到10,b保持50不變時所生成的各個帕斯卡蝸線。在逐個繪制的過程中,容易觀察出a>b,a=b,a

        將上述繪制帕斯卡蝸線的代碼中的初始條件和極坐標方程改變后也可以動態(tài)繪制其他一些常見極坐標曲線,例如三葉玫瑰線、四葉玫瑰線和螺旋線等曲線,極坐標方程如表1,生成的曲線如圖4。為了便于對比,帕斯卡蝸線也列到表1中。

        4 結(jié)論

        本文介紹的曲線的動態(tài)生成方法具有一般性,不僅適用于各種常見的極坐標方程表示的曲線,也適用于笛卡爾坐標方程表示的曲線。對于一般的形如y=f(x)的函數(shù)曲線,例如y=x2,y= x3,y= sin(x)等函數(shù)曲線的繪制上述方法也是可以實現(xiàn)的,只不過每次步長作用在自變量x上,然后計算對應的y值。根據(jù)具體的函數(shù)進行適當?shù)目s放,可動態(tài)生成笛卡爾坐標方程曲線。如圖5顯示了二次曲線、三次曲線和正弦曲線的繪制效果。

        在高等數(shù)學的學習過程中,經(jīng)常會遇到不同坐標系統(tǒng)下的各種曲線方程表示的曲線,還要計算與這些曲線相關的弧長、面積等幾何量的值。若能夠提前了解這些曲線的形態(tài),特別是對于一些不常見的曲線,利用本文介紹的方法動態(tài)生成曲線后將有助于計算的完成。

        極坐標方程對應曲線的動態(tài)生成具有清晰的直觀性,可以作為幾何課堂教學的有益補充,同時它的良好的交互性有利于曲線參數(shù)改變時對比曲線的幾何形態(tài),使學習者加深對知識的理解。

        參考文獻:

        [1] Donald Hearn.Computer Graphics with OpenGL[M].北京:電子工業(yè)出版社,2012.2:124-127.

        [2]劉孟輝,中文版Flash CS6課堂實錄[M].北京:清華大學出版社,2014.

        [3]蔣維,胡廷鋒.基于動作腳本的交互式動畫設計[J].洛陽師范學院學報,2016(11): 54-56.

        【通聯(lián)編輯:王力】

        作者簡介:黃紹龍(1980-),男,河南平頂山人,講師,碩士,從事計算機應用方面的研究。

        最新国产精品亚洲二区| 久久久久成人精品无码中文字幕 | 国产在线一区观看| 亚洲av精品一区二区三| 国产成人亚洲一区二区| 亚洲热妇无码av在线播放| 国内精品视频一区二区三区| 国产精品,在线点播影院| 日本一区二区三区不卡在线| 亚洲熟女www一区二区三区 | 天堂精品人妻一卡二卡| 国产欧美在线观看不卡| 亚洲国产美女精品久久久| 国产国拍亚洲精品永久不卡| 白白在线免费观看视频| 亚洲国产果冻传媒av在线观看| 午夜福利麻豆国产精品| 午夜福利不卡无码视频| 亚洲黄色精品在线播放| 无码人妻一区二区三区兔费 | 少妇私密会所按摩到高潮呻吟| 在线视频制服丝袜中文字幕| 中文字幕一区二区三区在线乱码| 国产精品视频自拍在线| 日本黄页网站免费观看| 亚洲国产精品久久久性色av| 一区二区三区日本视频| 熟妇人妻无码中文字幕老熟妇| 成人免费ā片在线观看| 中文字幕五月久久婷热| 亚洲中文字幕在线一区| 国产精品久久久久久亚洲av| 国产精品每日更新在线观看 | 欧美肥婆性猛交xxxx| 无码aⅴ在线观看| 激情文学人妻中文字幕| av色一区二区三区精品| 午夜无码国产理论在线| 99re6久精品国产首页| 久久麻传媒亚洲av国产| 国产尤物av尤物在线观看|