まず、ポリゴンを構成する頂点の座標を、全部まとめて書きます。
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 ] } } |