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

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

Authorware開發實例:Authorware7ShowMe范例精選--第3例 繪制柱狀比例圖

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

3.1  程序功能與運行

打開程序,屏幕上顯示如圖3-1所示的程序流程圖和如圖3-2所示的程序運行主畫面。

    

圖3-1  程序流程圖                            圖3-2  程序運行主畫面

在圖3-1中,run to view documentation設計圖標完成發布一個聲明并運行程序到主畫面的功能,其余設計圖標則完成運行程序實例的功能。

在如圖3-2所示的主畫面中有如下3個按鈕:

l         introduction——程序簡介

l         creating bars——程序流程圖標設計說明

l         run the example——運行實例

單擊run the example按鈕,程序進入實例演示分支,其運行畫面如圖3-3所示。

圖3-3  實例運行畫面

畫面左側窗口有一個縱向為0~100刻度的顯示區,中間繪有6種顏色的柱狀方塊,它們的高度各不相同;顯示區左上角還顯示有該6種顏色所分別表示含義標識。畫面右側則顯示一些相關文字說明,單擊滾動條上下兩端的箭頭可向上或向下瀏覽文字內容。

3.2  程序流程分析

3.2.1  設置屬性列表

本例在set data here運算圖標中用如下的代碼設置了一個含有6個元素的屬性列表:

datalist:=[#a∶10,#b∶20,#c∶30,#month∶month,#day∶day, #seconds∶sec];

第1個元素屬性值為a,元素值為10;

第2個元素屬性值為b,元素值為20;

第3個元素屬性值為c,元素值為30;

第4個元素屬性值為month,表示系統日期的月份數;

第5個元素屬性值為day,表示系統日期當月的日期號數;

第6個元素屬性值為seconds,表示系統時間秒數。

及時點評  程序利用一個屬性列表,定義了繪制一個柱狀圖的數據。屬性列表的元素個數即為繪制柱狀圖的個數;每個元素的屬性值即為每塊柱狀圖的含義標識;每項元素的元素值即為每塊柱狀圖的高度值。本例共定義了6個柱狀塊,前面3個柱狀塊的高度為具體數值,后面3個柱狀塊的高度為系統變量。

3.2.2  設置柱狀相關參數

draw bars運算圖標中代碼的前半部分如圖3-4所示。

代碼的前半部分進行繪制柱狀塊的相關參數設置,包括如下的一些內容:

(1)柱狀塊高度范圍,保存在range變量中。

(2)每塊柱狀寬度,保存在barwidth變量中。

(3)高度的等分刻度值,保存在grid slice變量中。

(4)柱狀圖底線縱坐標值,保存在grid bottom變量中。

 

                          圖3-4  draw bars運算圖標中的代碼(前半部分)

及時點評  在一個窗口繪制柱狀圖時,除了知道柱狀塊的個數和每個柱狀塊的的高度值外,還必須知道窗口畫面的高度和寬度值,并且要設置好高度范圍值和每個柱狀塊所占寬度。

本例繪圖窗口為graph area顯示圖標中繪制的矩形線框范圍,并設置范圍高度為0~100,將線框高度平分為10等分,應用repeat with…語句繪制出等分刻度線。將線框寬度除以6得到每個柱狀塊的寬度;并且以線框的底線作為繪制柱狀圖的基線坐標。這些設置充分利用了圖形坐標顯示變量,為柱狀圖繪制做好充分準備

3.2.3  繪制柱狀圖及其標識圖

draw bars運算圖標中的后半部分代碼完成繪制柱狀圖及其標識的功能。后半部分的代碼如圖3-5所示。

用repeat with…循環語句循環6次執行box函數,分別繪制出datalist屬性列表中6個項目所表示的6個柱狀塊。

box函數的應用格式如下:

box(nx1,y1,x2,y2

其中:n為線寬數,x1y1為方框起點坐標,x2,y2為方框終點坐標。

由于每塊柱狀的高度數據、寬度值、線框高度范圍和基線坐標均已設定。因此,繪制每塊柱狀時的起點與終點坐標均可通過變量代入計算求得。

 

圖3-5  draw bars運算圖標中的代碼(后半部分)

比如繪制第2個柱狀塊時,計算如下:

barnumber=2

valueatlndex(datalist,barnumber)=20

box(1,displayleft @"graph area"+((barnumber-1)×barwidth),gridbotton,

    displayleft @"graph area"+(barnumber×barwidth),gridbotton-(gridslice×valueat index(data list,barnumber)))

box函數繪制柱狀的坐標值如下:

x1=displayleft @"graph area"+barwidth

y1=gridbottom

x2=displayleft @"graph area"+2×barwidth

y2=gridbottom-20×gridslice

示意圖如圖3-6所示。

圖3-6  示意圖

同時,每畫一個柱狀塊,就接著應用另一句box函數繪制出一個10×10的小方框放在畫面左上角,作為該柱狀塊的標識。

繪制標識小方框的語句中應用了color key顯示圖標中對象的位置坐標。color key顯示圖標中的對象是一個嵌入變量{datanames},該變量保存了屬性列表中6個元素的屬性值,且每個屬性值之間用return符隔開,如下:

datanames:=[a/r b/r c/r month/r day/r seconds/r]

因此,datanames顯示出來為縱向排列的屬性值。

color key顯示屬性設置如圖3-7所示。

由如圖3-7所示的設置可知,設計圖標選擇了實時改變變量值,并讓對象直接顯示于窗口。圖標對象顯示定位區域為on screen,其顯示坐標位置表達式如下:

x=15+displayleft @"graph area"+(displaywidth @"color key"/2)

y=2+displaytop @"graph area"+(displayheight @"color key"/2)

                  

圖3-7  【color key】顯示屬性設置對話框

這表示{datanames}顯示位置將在“graph area”線框圖形的左上角。繪制標識小方框的語句如下:

box(1,displayleft @"color key"-10,displaytop @"color key"+2+(14×(barnumber-1)),displayleft @"color key",displaytop @"color key"+2+(14×(barnumber-1))+10)

也就是說繪制第2個標識小方框的位置坐標如下:

x1=displayleft @"color key"-10

y1=displaytop @"color key"+16

x2=displayleft @"color key"

y2=displaytop @"color key"+26

顯然,第2個標識小方框顯示于{datanames}屬性值向左10個像素,向下16個像素的地方,且方框大小為10像素×10像素。

在繪制每一個柱狀塊與其標識小方框時,都要應用rgb語句隨機設置一種顏色,因而6個柱狀塊及其標識的顏色都是各不相同的。

及時點評  box函數繪制矩形是一個簡單的應用過程。但在應用box函數繪制矩形時的起點與終點坐標的設置是一個技巧性很強的設置。起點與終點坐標可以是固定的數值,也可以是變量或表達式。本例應用的是對應于某個顯示對象的相對位置,比如柱狀塊的位置以graph area設計圖形為基準,而標識小方框以color key對象為基準。靈活而準確的應用相對位置是showme 3.0中頻繁使用的設計技巧。

本例用setfill函數填充box所繪制的矩形。用來填充矩形的顏色是由random隨機函數隨機產生的,因此每次繪制時6個柱狀塊的顏色均是不相同的,而且是隨機的。

另外,由于dataleft屬性列表的后3項元素值均為系統變量,同時時間是變化的,因此每次繪制后3個柱狀塊的高度是不一致的。前3項是固定數值,則柱狀塊的高度是固定的。用戶也可修改設置,但在數據過大時,要修改范圍值 range,以免繪制的柱狀塊超出range的最大范圍。

3.2.4  標識含義的顯示

在如圖3-4所示的運算代碼中,每當繪制一塊柱狀圖時,均把datalist屬性列表中本元素的屬性標識符添加到datanames變量中,其代碼語句如下:

datanames:=datanames^strip("#",propertyatindex(datalist,barnumber))^return在每添加一個標識符時都帶上了換行符return。

datanames變量已嵌入在color key顯示圖標中,所以在畫面左上角顯示出6種顏色所代表的屬性標識。

3.3  小結

本程序將一個屬性列表中所包含的元素,用隨機產生的顏色繪制成柱狀比例圖,并且各柱狀的標識含義同時被繪制到畫面左上角。

本例主要應用了如下的一些原理和技術:

l         屬性列表的創建

l         box函數繪制矩形方框的技術

l         setfill函數填充方框的技術

l         隨機顏色的產生

l         用repeat with 循環語句將屬性列表各元素項繪制成柱狀比例圖的設計

l         顯示對象屏幕坐標值的獲取與應用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黑人操穴 | 色妞妞视频 | 一级免费看片 | 国产一区二区视频观看 | 欧美黄成人免费网站大全 | 91久久久久久久久久久久久 | 亚洲福利在线视频 | 国产精品久久久久久久久久免 | 黄色一级电影网 | 黄色淫片 | 久久久久久久久久久久久九 | 久久久成人一区二区免费影院 | 亚洲射逼 | 蜜桃网在线 | 久久国产免费 | 成人一区二区三区在线 | 国产精品视频导航 | 九九热精 | 国产午夜精品久久久久 | 欧美爱爱一区二区 | 国产一区二区不卡视频 | 久久99亚洲精品久久99果 | 91网站链接 | 嗯~啊~弄嗯~啊h高潮视频 | 久久免费观看一级毛片 | 91美女视频在线 | 曰批全过程120分钟免费69 | 欧美成人自拍 | 精品中文视频 | chinesexxx少妇露脸 | 国产精品久久国产精品 | 亚洲综合网站 | 亚洲第一综合 | 在线免费av观看 | 羞羞的视频在线观看 | 中文字幕亚洲情99在线 | 国产精品99久久久久久久女警 | 久久久久久久久成人 | 久久成人精品视频 | 99热久草 | 国产黄色录像片 |