王林玉
摘要
通過Authorware的圖標化的編程方式,在Authorware中采用堆疊小立方體的方式,將15個小立方體隨機填充到一個3*3*3的矩陣樣式中,模擬空間的三維立體圖形。在生成的模擬三維立體圖形中,任選一個生成三視圖,用熱區(qū)響應的方式,選擇與三視圖對應的三維立體圖形。實現(xiàn)三視圖的模擬識圖系統(tǒng)的制作,從而達到強化三視圖識圖的目的。
【關鍵詞】Authorware 變量 函數(shù) 三視圖
在機械零件圖形繪制中,通常是用三視圖來表達一個機械零件在各個面上的投影的輪廓形狀。三視圖一般指對象的主視圖、左視圖和俯視圖,將機械零件用正投影法在三個相互垂直的投影面上產(chǎn)生的投影輪廓形狀作為各自不同的投影圖形,這種投影關系是一一對應的。CAD繪制三維圖形時,常用的方法是將簡單的二維圖形,通過拉伸旋轉和布爾運算之后,生成復雜的三維圖形。對三視圖的投影方法的理解以及三視圖與三維圖的對應關系,在工程繪圖或CAD三維繪圖都是很重要的一部分基礎知識。在Authorware中用小立方體的方式構造空間立體,用堆疊立方體的方式構造空間物體。實現(xiàn)三視圖識圖系統(tǒng)的制作,通過使用此系統(tǒng)可以加強三視圖識圖能力的練習。
1系統(tǒng)設計思路
此練習系統(tǒng)中,采用小立方體單元堆疊的方式來構造網(wǎng)格式的空間立體對象,就象魔方玩具一樣,空間立體對象是由3*3*3矩陣樣式排列的小立體構成。系統(tǒng)中,用15個小立方體隨機填充到不同的位置,就能構造出結構復雜又變化多樣的空間立體,在系統(tǒng)界面中,每次構造6個立體對象,處于不同的位置而且每組隨機取出一個立體構造其三視圖。
用堆疊小立方體的方式構造空間立體時,從不可見的面向可見面堆疊。對于空間小立方體的繪制,建立一個用戶坐標系,確定基點坐標及各個坐標軸方法(圖1繪制小立方體坐標)。根據(jù)坐標軸的方向,在繪制空間立體各個小立方體單元,繪制時要按照從下向上(z坐標)、從右向左(y坐標)、從后到前(x坐標)的順序來繪制,這樣使空間位置靠前的小立方體能夠遮住后面的小立方體。其中靠前的小立方體遮住后面的小立方體部位不可見的線,用白色的線條繪制。
在垂直于投影面的一列網(wǎng)格單元中,只要有一個位置被填充了小立方體,這列網(wǎng)格對應的投影位置就應出現(xiàn)一個小矩形。
制作此系統(tǒng),首先建立基本的程序結構和界面,如圖2所示。
在初始化中,設置變量stop和分組變量item設置初始值,設置stop:=0,item:=l。在決策圖標的屬性窗口,選擇循環(huán)屬性為直到判斷值為真,并定義退出的條件為item>20|stop=1,這樣,當分組變量item達到20或者停止標志變量stop被置為1,都將結束這個決策循環(huán),如圖3所示。
2系統(tǒng)實現(xiàn)過程
打開群組圖標,在一次測試流程圖中,設置分支結構如圖4所示。
2.1隨機構造空間立體
在分支中,六次決策圖標和之下的群組圖標,用來在窗口中生成隨機構造空間立體堆。其分支結構中,分別用三個計算機圖標,依次為生成“立方體”、“畫立方堆”、“下一個立方堆”來順序執(zhí)行。其后跟一個決策圖標“選擇立方堆”。
其中,“生成立方體”計算圖標中,利用數(shù)組記錄3*3*3矩陣網(wǎng)格各立方體填充情況,先對數(shù)組初始化,程序代碼為:
Repeat with x:=lto3
Repeat with y:=lto3
Repeat with z:=lto3
E1:=x*100+y*10+z
Arrayset(el,0)
End repeat
End repeat
End repeat
N:=l
Repeat while n<=15;利用變量n控制總數(shù)不超過15個
Rx:random(l,3,l);為變量rx隨機選擇一個1-3之間的整數(shù)
Ry:=random(l,3,l);為變量ry隨機選擇一個1-3之間的整數(shù)
If arrayget(rx*100+ry*10+l)=0then
Arrayset(rx*100+ry*l0+1,1);判斷代表網(wǎng)格單元的數(shù)組元素值是否為0,是則將其值置為1
Else
If arrayget(rx*100+ry*10+2)=0 then
Arrayset(rx*100+ry*10+2,1)
Else
If arrayget(rx*l00+ry*10+3)=0 then Arrayget(rx*100+ry*10+3,1)
Else
N:=n-1
End if
End if
End if
N:=n+1
End repeat
在計算圖標“畫立方堆”中,輸入如下程序
Sx:=mot(keer,3)*130+80;用變量keer和mod函數(shù)、int函數(shù)確定空間立體的起始點坐標
Sy:=int(keer/3)*130+190Repeatwithz:=lto3按照Z坐標、Y坐標、X坐標的順序繪制前面隨機確定的小立方體。
Repeat with y:=3 down to 1
Repeat with x:=3 down to 1
If arrayget(x*l00+y*10+z)=l then 如果數(shù)組元素的值為1,該元素對應的空間立體單元位置有一個小立方體,因此進入繪制程序Cx:=sx-(y-x)*17
Cy:=sy-(x+(y-z))*10-(z-l)*30;確定基點坐標endprint
Setfame(l,rgb(255,255,255));使用白色的線條繪制不可見部分
Line(1,cx,cy-20,cx-17,cy-10)
Line(1,cx+17,cy-10,cx,cy-20)
Linet)1,cx,cy-40,cx,cy-20)
Setframe(l,rgb(255,0,0));用紅色繪制小立方體頂面的4條邊
Line(1,cx,cy-20,cx-17,cy-30)
Line(1,cx,cy-20,cx+17,cy-30)
Line(l,cx-17,cy-30,cx,cy-40)
Line(l,cx+17,cy-30,cx,cy-40)
Setfame(l,rgb(0,255,0));用綠色繪制左側面的邊
Line(1,cx,cy,cx-17,cy-10)
Line(1,cx-17,cy-10,cx-17,cy-30)
Line(1,cx,cy,cx,cy-20)
Setframe(l,rgb(0,0,255));用藍色繪制前面的邊
Line(1,cx,cy,cx+17,cy-10)
Line(1,cx+17,cy-10,cx+17,cy-30)
End if
End repeat
End repeat
End repeat
在流程線上加一個計算圖標“下一個立方體”,將位置變量keer:=keer+l,在下一個循環(huán)中在下一個位置繪制另一個空間立體。
2.2隨機選擇空間立體構造三視圖
在第四層流程圖中加入一個決策圖標,設置分支屬性為to calculated path,定義計算表達式為“keer=w”,由于變量keer是遞增的,而變量W是前面產(chǎn)生的隨機值,因此這樣設置可以隨機選擇一個空間立體。
在群組圖標流程線上,加入三個計算機圖標,分別用來判斷小立方體是否在某一個面上有投影。其中實現(xiàn)程序如下:
Vaz:=””
Repeatwithz:=3downto1
Repeat with x:=l to 3
K:=arrayget(x*100+10+z*l)+arrayget(x*100+20+z*l)+arrayget(x*100+30+z*1)
If k>0 then vaz:=vaz∧l else
vaz:=vaz∧0
End repeat
End repeat
判斷某一列是否有小立方體單元:將該列三個單元對應的數(shù)組元素的值相加,如果和大于0,說明有小立方體,同時為字符串變量vaz添加字符1,否則添加字符0。其它兩個視圖程序相同。
在第三層流程線上,用一個群組圖標,加入顯示圖標和三個計算圖標,用來設置圖形的顯示和繪制,其實現(xiàn)程序如下:
在程序中,利用函數(shù)substr從字符串變量vaz中取出前3個字符,中間3個字符和最后3個字符,并分別賦值給3個字符串變量,繪制最上面的一排單元格,如果字符為1,說明需要繪制小方塊,邊長設置為15,否則不繪制。繪制中間一排的單元格,小方塊的Y坐標增加15,然后繪制最下面一排單元格,小方塊的Y坐標再增加15。同理,繪制其它兩個視圖。
2.3判斷及統(tǒng)計
在系統(tǒng)設計后期,需要提示用戶要完成的任務。然后利用熱區(qū)響應判斷用戶選擇的是否正確,是則繼續(xù)下組練習,否則重新選擇,記錄選擇的正誤次數(shù),結束程序時顯示練習情況。具體的做法為如下:
(1)在流程圖上加入一個交互圖標,其下加入兩個計算圖標,用按鈕響應,分別為返回和下一組練習。加入兩個群組圖標,分別是正確的選擇和錯誤的選擇,用熱區(qū)響應。
(2)在正確的選擇群組圖標中,設置其分支流向為離開交互,在錯誤的選擇分支中設置其流向為返回。
(3)在每次正確選擇之后,用擦除圖標來擦除正確提示信息。
其流程圖如圖5所示。
系統(tǒng)設計最后效果如圖6所示。
3結論
系統(tǒng)的設計與實現(xiàn),首先是用數(shù)組記錄空間立體構造情況,隨機為數(shù)組元素賦值。然后根據(jù)數(shù)組元素值,在對應位置繪制小立方體單元,隨機選個空間立體,用字符串變量記錄其在各投影面的投影情況,根據(jù)字符串變量的值繪制三視圖,利用熱區(qū)響應判斷用戶選擇是否正確,統(tǒng)計測試情況。
參考文獻
[1]宋一兵,遲潔茶.Authorware6典型應用實例與技巧[M].北京:人民郵電出版社,2002.
[2]許永年,覃小斌.工程制圖[M].北京:中央廣播電視大學出版社,1999.endprint