麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 媒體動畫 > 正文

Authorware類和函數:運用Authorware動態繪制二次函數曲線圖

2024-09-08 19:24:47
字體:
來源:轉載
供稿:網友

在中學的數學中,二次函數是最常用的函數,標準式y=ax*x+bx+c(a<>0),它的圖像是以一條直線x=-[b/(2a)]作為對稱軸,點{-[b/(2a)],(4ac-b*b)/4a}為頂點的拋物線,如果a>0,那么拋物線開口向上,如果a<0,拋物線向下張開。針對函數性質,現在利用authorware動態繪制出它的曲線圖。(執行界面如插圖1所示)

authorware具有強大的多媒體處理功能,5.1版本的數學函數有二十多個,但沒有直接處理二次函數的系統函數,我們可以利用其他的方法繪制出二次曲線,下面就用實際例子去解決這問題。(插圖2為第一層的流程線)

先打開authorware 5.1,新建一文件,取名為“二次函數”。先建立一個計算圖標setwindows,它的內部數據如插圖3所示。

resizewindow(640, 480)是設置執行窗口的大小,我們選取普通640*480的顯示模式。a:=1;b:=0;c:=0是設定二次函數3個系數的初始值。

第二個計算圖標(如插圖4所示),它主要是設置本軟件的背景圖。這個計算圖標的意圖主要是將整個展示窗口分為3個區域,左上區是繪圖區,右上區是說明、提示、幫助區,下半部份是輸入數值區。showtitlebar(off/on)是隱藏或者展示窗口中的用戶菜單,showmenubar(off/on)--隱藏或展示窗口中的用戶標題欄,這里都選取隱藏。這里重復利用了多個繪圖函數,函數setfill(flag [, color])用于設置使用繪圖函數時是否填充,并可以設置填充的顏色。flag 是真,填充;是假,不填充(真可以用1、true、y等代替,假可以用0、false、n等代替),用rgb函數計算顏色color。rgb(r,g,b)組合r(紅色),g(綠色)和b(藍色)值進入單一的顏色值。每個組成數字介于0和255。如何設定這3個數字呢?其實很簡單,你可以利用windows所帶的畫筆或者其他的一些繪畫軟件,在編輯顏色時,選定你需要的顏色,旁邊輔助工具顯示出那種顏色的rgb數值。setfill(flag [, color])用于設置使用繪圖函數時是否填充,并可以設置填充的顏色。flag是真,填充;是假,不填充,用 rgb 函數計算顏色color。setframe(flag [, color])用于設置使用繪圖函數時是否含有邊框,并可以設置邊框的顏色。box(pensize, x1, y1, x2, y2)是根據提供的兩點坐標(x1,y1)和(x2,y2)畫一個矩形,邊框的線寬為pensize。畫出的矩形邊線是黑色里面是白色,除非用setframe和setfill改變。line(pensize, x1, y1, x2, y2)根據提供的兩點坐標(x1,y1)和(x2,y2)使用線寬pensize畫一條直線。直線的顏色是黑色,除非在setframe 函數中設定可以改變。setline(type)用于設置直線的形狀:0=無箭頭,1=開始有箭頭,2=結束有箭頭, 3=兩端有箭頭。這里畫xoy坐標時,選擇2。對照插圖4,我們就可以做出插圖1所顯示的背景圖。這里的表格、坐標等都是單純用作圖函數直接畫出,相比用authorware的作圖工具更具有靈活性、準確性、高效性。需要注意的是,由于設定的內容比較多,而這些設定會相互影響,一定要小心,并且要多測試,防止出現漏洞。

插圖1的about交互圖標采用了按鍵交互,一個是幫助,用來說明使用軟件注意問題等內容,一個是退出程序。里面用到了2個系統函數,restart()和quit()。restart()從文件的初始狀態執行,重新運行時所有變量都被初始化,restart只能用于計算圖標,沒有任何參數。quit(option)是退出文件函數,其中0代表離開程序管理器或如果從另一個文件轉入則返回文件;1設定退出程序管理器;參數2是重新啟動windows(在 wind 3.1 中退到 dos);3是關閉電腦(在win3.1不能使用)。

屏幕下半部份是用于輸入3個系數a、b、c,使用變量直接顯示輸入的a、b、c的輸入值,將這顯示圖標的properties(屬性)設定為update displayed variables(自動更新顯示變量)和prevent automatic erase(防止自動擦除),目的是為了讓每次的輸入數據可以馬上同步出現,并且一直在顯示。

在intup_abc群組圖標里面,是3個交互圖標和6個計算圖標(如插圖5所示),3個交互圖標采用text entry(文本輸入),用于輸入曲線的3個系數abc。

在交互圖標屬性里面有個text field(文本區域),在layout(版面設計)中可以設置auto-entry at limit(在界限處自動登錄),在character limit(字符界限)中設定5個就自動登錄進去,在interaction交互屬性中選定ignore null entries(忽略空輸入),避免沒輸入字符就繼續運行,在text mode(文本模式)中選擇transparent(透明),使輸入內容和背景和諧。為了可以輸入文本,在交互圖標下的計算圖標設置a:=numentry,變量numentry表示用戶在文本交互中所輸入的數字,參數b、c設置方法是相同的。在每個交互圖標下都有一個計算圖標(如插圖6所示)進行輸入數值判斷,因為坐標的長度有限,我們繪制的二次函數曲線是一個壓縮的圖標,所以要限制輸入的3個參數的取值范圍,經過考慮實際情況和嘗試,決定a、b限制在正負100,c限制在正負120之間,所以計算圖標中加條件語句if...then...,目的就是限制輸入數值,如果超過了設定值,就返回繼續輸入,直到符合限制要求。

因為二次函數要求二次系數a不能為零,所以在輸入數據后,流程線上還加上一個判斷if a=0 then goto(iconid@"000"),當a=0時,轉到執行圖標id為“000”處(插圖7),它的作用就是顯示輸入數據出錯,重新輸入數值。

輸入了數據之后,利用authorware的系統函數來繪制二次曲線。在主流程線上show交互圖標下有2個群組a>0和a<0,里面的內容樣式是一樣的(見插圖8)。在繪制圖形之前,有個判斷(插圖9),h:=b/a/2;if abs(h)>23 then goto (iconid@"overflow")這里的意思其實就是限制圖形要在繪圖區內,和前面同樣的道理,由于坐標長度限制,當h過大提示重新輸入系數a、b(主要是abs(b/a)>46時進行限制,因為這時圖形已經開始超出繪圖區),圖標id“overflow”的部分,就是提示出錯和重新返回輸入系數數值。

整個課件的靈魂在計算圖標“draw”里面(見插圖10),這里的repeat with i:= -240 to 240 就是讓變量i從-240到240進行全部取值,這個數量段的取值是不定的,一般和顯示圖形的窗口大小相關,基本上與繪圖區像素的點數相近為宜(如現在的繪圖區的像素是640*480)。語句y:=-((((a*i*i)/(480*(abs(a))))+((b)*i/(480*abs(b+0.001)))))-(c)就是繪制二次函數曲線圖形,它分3部分,分別對應函數的二次、一次、常數項,因為authorware屏幕的坐標和xoy的坐標不同,這里進行了坐標轉換,需要一定的數學知識(幾何坐標系的轉換),不能直接套用二次函數一般式,需要用/(480*(abs(a)))和/(480*abs(b+0.001))這兩部分參數來修正二次函數圖像在屏幕上的顯示,使到圖像和實際情況相吻合。由于二次系數和一次系數對坐標位置的影響不同,很明顯在同等情況下二次系數對圖形的影響比一次的要大,這2個參數也就不同。特別注意前面的負號,因為計算機的坐標是以左上角為(0,0)向右、下遞增坐標數值,實際xoy坐標系是x坐標值向右遞增,y坐標值向上遞增,所以x坐標值遞增方向與計算機屏幕坐標值遞增方向相同,y坐標值遞增方向與計算機屏幕坐標值遞增方向相反,結合坐標轉換就得出這語句前面加負號,使到計算機屏幕顯示y坐標軸的方向與實際相符。常數c與坐標轉換沒關系,它只影響圖形的上下位置,前一個的負號與c無關;因為計算機y軸的遞增方向是向下,c前面加負號使到y軸遞增方向向上,與實際c值的增減相同。在語句x:=i/((6+abs(a)*(1/6)+((b)*(1/6))/(sqrt(abs(b+0.001)))))中,6、1/6、0.001等參數主要是修正曲線張開角度之用,它們對拋物線的伸張影響程度不同而有不同的參數,這些參數,在數學知識基礎上,結合實際情況而得出的。語句line(1,x+240-(b/a/2)*10,y+180,x+240-(b/a/2)*10,y+180)中,x+240和y+180用于確定xoy坐標系的原點在繪圖區的位置,通過用線當點(像素為1其實就是一點)來繪制二次函數曲線,因為i在一定范圍取值,每次取值就可以畫出二次曲線的一個點,所有的坐標取值變化就得出二次函數曲線。語句line(1,240-(b/a/2)*10,8,240-(b/a/2)*10,352)是用來繪制曲線的對稱軸x=-b/(2a)。這部份的輔助參數要進行多次嘗試,結合實際情況確定。

在制作課件的時候,要注意充分考慮到使用時出現的各種情況。這課件是通過人工輸入二次函數的3個系數來繪圖,由于輸入的情況是很復雜的,當輸入的數值太大時,由于屏幕顯示坐標的限制,可能會出現見不著圖形等情況,考慮到這點,采用限制輸入數值的方法,系數a、b限制在正負100之內,c限制在正負120之內,這樣,既有一定的普遍性,又減少產生誤差的可能性。由于a不能等于0,當輸入為零時,通過調用群組“000”來進行說明a不能為零。二次曲線的對稱軸x=-b/(2a),當abs(b/a)>46時,圖形超出了屏幕顯示范圍,同樣用計算圖標h:=b/a/2;if abs(h)>23 then goto (iconid@"overflow")調用overflow群組說明。輸入的數值是字母或者其他非阿拉伯數字時,authorware的系統字符函數char、code不能處理字符變量(因為輸入的數字是變量),不能象其他編程語言一樣通過考慮字符的ascii碼來進行判斷,不能過濾非數字變量,而authorware只將其他字符當為1或0處理(單獨時其他字符為0,有數字混合時為1)。這說明了制作軟件時,要充分考慮使用時出現的各種情況,要采取一定的糾錯處理。

下載2次函數源程序

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本aⅴ在线 | 干少妇av | 国产亚洲精品yxsp | 在线成人免费观看视频 | 亚洲精品午夜电影 | 最近免费观看高清韩国日本大全 | 欧美城网站地址 | 久久av免费 | 久久久www免费看片 亚洲综合视频一区 | 免费黄色在线 | www.99热视频 | 依依成人精品视频 | 久久草在线视频国产 | 91精选视频在线观看 | 日韩激情一区 | 大学生一级毛片在线视频 | 羞羞视频免费网站含羞草 | www.99热精品| 免费一级特黄毛片视频 | 一级在线观看 | 精品成人在线观看 | 精品一区二区三区日本 | 一区二区三区日本在线观看 | 久久99国产综合精品 | 99成人精品视频 | 我爱我色成人网 | 国产精品伦视频看免费三 | 亚洲性生活免费视频 | 国产成人午夜精品 | 日韩av影片在线观看 | 欧美3p激情一区二区三区猛视频 | 久草资源在线观看 | 巨根插入| 亚洲第一成av人网站懂色 | 国产做爰| 美国av免费看 | 一级黄片毛片免费看 | 亚洲一区在线国产 | 国产精品久久久久久久四虎电影 | 色就色 综合偷拍区91网 | 中国av免费观看 |