まず、ポリゴンを構成する頂点の座標を、全部まとめて書きます。
geometry IndexedFaceSet の後に { } の中に、まず
coord Coodinate と書いて、その後に { } をつけます。
{ } の中に、
point と書いて、その後に [ ] をつけます。
[ ] の中に、頂点の座標を全部続けて書きます。
以上、IndexedLineSet の頂点の記述と同様です。
続いて、何番目の頂点と何番目の頂点を結んで
ポリゴンを作るかという情報を、全部まとめて書きます。
geometry IndexedFaceSet の後に { } の中に、
coordIndex と書いて、その後に [ ] をつけます。
[ ] の中に、頂点の座標の番号を全部続けて書きます。
〜ここで注意〜
前に述べた coordIndex の中でまとめて書いた頂点のうち、
1番目に書かれた頂点を「0番」、
2番目に書かれた頂点を「1番」というように数えます。
〜ここまで注意〜
もし1番目の頂点、2番目の頂点、3番目の頂点を結んで、
ポリゴン(三角形)をつくるなら、
0,1,2 と書いて、その後に -1, とつけます。
さらに、もし1番目の頂点、3番目の頂点、4番目の頂点を
結んで、別のポリゴンをつくるなら、
0,2,3 と書いて、その後に -1, とつけます。
以下、このようにして引かれる2個のポリゴンの記述例です。
coordIndex [ 0,1,2,-1, 0,2,3,-1 ] |
もうちょっと複雑なポリゴンの集合を記述した例を示します。
この例では、まず30個の頂点が記述されています。
続いて、その何個かを接続してできるポリゴンが
全部で26個記述されています。
最後の1個だけが五角形で、残りの25個は全部四角形です。
#VRML V2.0 utf8
Shape {
geometry IndexedFaceSet {
coord Coordinate {
point [
0.32 2 0,
0.1 2 0.3,
-0.26 2 0.19,
-0.26 2 -0.19,
0.1 2 -0.3,
0.3 1.95 0,
0.09 1.95 0.29,
-0.24 1.95 0.18,
-0.24 1.95 -0.18,
0.09 1.95 -0.29,
0.42 1.6 0,
0.13 1.6 0.4,
-0.34 1.6 0.25,
-0.34 1.6 -0.25,
0.13 1.6 -0.4,
0.6 1.5 0,
0.19 1.5 0.57,
-0.48 1.5 0.35,
-0.49 1.5 -0.35,
0.18 1.5 -0.57,
0.7 1.2 0,
0.22 1.2 0.67,
-0.57 1.2 0.41,
-0.57 1.2 -0.41,
0.21 1.2 -0.67,
0.4 0 0,
0.12 0 0.38,
-0.32 0 0.24,
-0.32 0 -0.23,
0.12 0 -0.38
]
}
coordIndex [
0, 1, 6, 5, -1,
1, 2, 7, 6, -1,
2, 3, 8, 7, -1,
3, 4, 9, 8, -1,
4, 0, 5, 9, -1,
5, 6, 11, 10, -1,
6, 7, 12, 11, -1,
7, 8, 13, 12, -1,
8, 9, 14, 13, -1,
9, 5, 10, 14, -1,
10, 11, 16, 15, -1,
11, 12, 17, 16, -1,
12, 13, 18, 17, -1,
13, 14, 19, 18, -1,
14, 10, 15, 19, -1,
15, 16, 21, 20, -1,
16, 17, 22, 21, -1,
17, 18, 23, 22, -1,
18, 19, 24, 23, -1,
19, 15, 20, 24, -1,
20, 21, 26, 25, -1,
21, 22, 27, 26, -1,
22, 23, 28, 27, -1,
23, 24, 29, 28, -1,
24, 20, 25, 29, -1,
25, 26, 27, 28, 29,-1
]
}
}
|