在本講中,我們將介紹如何點、線及其基本2D圖形的創建和構造,其中還簡單地介紹了X3D的坐標系。
一、點及點的坐標
在X3D的場景中設置物體需要有明確的坐標。在同一個場景中,有一個統一的坐標系。這個坐標系是一個右手坐標系,在初始時(即觀察者沒有移動位置和改變視角),該坐標系的X軸為沿屏幕水平向右,Y軸為沿屏幕垂直向上,Z軸為從屏幕指向用戶。
在X3D中,點的坐標是(x, y, z),坐標的單位是邏輯單位,即是X3D的VRML單位,由於它所顯示的圖形是按比例進行的,因此你可以把單位當成mm。在指定坐標量各坐標分量值可以用空格分開也可以用逗號分隔。下面的示例是顯示四個點,其代碼如下:
說明:
(1) X3D支持點的節點是PointSet,它可以包含Color 和Coordinate節點。Color節點是用來構造顏色值的索引表用於指定對應點或對象的顏色,Coordinate節點是用來構造坐標的列表。
(2) 在Coordinate節點屬性窗口中,單擊point屬性內容,彈出一對話框,添加如下圖的坐標點。
上述代碼的結果如下圖所示。
若要指定單個點的不同顏色,可刪除Appearance節點,並在PointSet節點添加Color子節點,並指定其color屬性值,如下圖所示:
這樣上述場景代碼就變成:
運行結果如下:
二、繪制直線
在X3D中,繪制直線是采用IndexedLineSet節點,它可以包含Color 和Coordinate子節點。IndexedLineSet節點屬性中,coordIndex屬性用來指定直線端點在Coordinate子節點的索引號(0表示第一個點),每條直線索引值由3個數組成,前兩個是點的索引號,第三個是-1。
例如,在上述代碼中再添加一個Shape節點,構成如下的代碼。
其中,Coordinate子節點中的point內容同上。IndexedLineSet節點的coordIndex屬性內容如下所示:
運行結果如下:
若想設置每條直線的顏色,可將上述代碼改為下列結果:
說明:IndexedLineSet節點的colorindex屬性值由3個數組成,前兩個用於指定起始點和終止點顏色在Color節點定義中的索引,最後一個是-1。例如,顏色索引號0是指在Color節點定義的第一個顏色值(1 1 0)。上述代碼中的Color節點內容同前。
運行結果如下:
三、給制矩形
在X3D中,Rectangle2D 幾何節點用來指定一個平面矩形。使用時比較容易,只要指定其size屬性內容就可改變其大小。Rectangle2D默認的size大小是2, 2。如下列代碼:
結果如下圖所示。
四、給制2D弧線
X3D中的Arc2D、ArcClose2D、Circle2D和Disk2D節點分別用來繪制圓弧、封閉圓弧、圓和環。如下面的示例:
結果為:
類似的有:
在下一講中,我們將介紹基本3D圖形的創建方法。