■ Perintah Cube
Perintah Cube di objek B3D dan CSV setara dengan serangkaian perintah Vertex/AddVertex dan Face/AddFace.
Given the following code (B3D style):
▶ | Cube x, y, z |
The Cube command corresponds to these instructions (B3D style):
▶ |
Vertex x, y, -z Vertex x, -y, -z Vertex -x, -y, -z Vertex -x, y, -z Vertex x, y, z Vertex x, -y, z Vertex -x, -y, z Vertex -x, y, z Face v+0, v+1, v+2, v+3 Face v+0, v+4, v+5, v+1 Face v+0, v+3, v+7, v+4 Face v+6, v+5, v+4, v+7 Face v+6, v+7, v+3, v+2 Face v+6, v+2, v+1, v+5 |
where v is the number of vertices that have already been created before the Cube command was used.
If you want to texture the cube, you need to add appropriate Coordinate/SetTextureCoordinate commands manually.
■ The Cylinder command
The Cylinder command in B3D and CSV objects is equivalent to a series of Vertex/AddVertex and Face/AddFace commands.
Given the following code (B3D style):
▶ | Cylinder n, r1, r2, h |
The Cylinder command first corresponds to n pairs of two vertex instructions (B3D style):
▶ |
Vertex cos[2*pi*0/n]*r1, h/2, sin[2*pi*0/n]*r1 Vertex cos[2*pi*0/n]*r2, -h/2, sin[2*pi*0/n]*r2 Vertex cos[2*pi*1/n]*r1, h/2, sin[2*pi*1/n]*r1 Vertex cos[2*pi*1/n]*r2, -h/2, sin[2*pi*1/n]*r2 Vertex cos[2*pi*2/n]*r1, h/2, sin[2*pi*2/n]*r1 Vertex cos[2*pi*2/n]*r2, -h/2, sin[2*pi*2/n]*r2 … Vertex cos[2*pi*(n-1)/n]*r1, h/2, sin[2*pi*(n-1)/n]*r1 Vertex cos[2*pi*(n-1)/n]*r2, -h/2, sin[2*pi*(n-1)/n]*r2 |
Then, n faces are added to form the side walls (B3D style):
▶ |
Face 2, 3, 1, 0 Face 4, 5, 3, 2 Face 6, 7, 5, 4 Face 8, 9, 7, 6 … Face 2*n-6, 2*n-5, 2*n-7, 2*n-8 Face 2*n-4, 2*n-3, 2*n-5, 2*n-6 Face 2*n-2, 2*n-1, 2*n-3, 2*n-4 Face 0, 1, 2*n-1, 2*n-2 |
If r2>0, a lower cap is then added (B3D style):
▶ | Face 2*n-2, 2*n-4, 2*n-6, …, 4, 2, 0 |
If r1>0, an upper cap is then added (B3D style):
▶ | Face 1, 3, 5, …, 2*n-5, 2*n-3, 2*n-1 |
If you want to texture the cylinder, you need to add appropriate Coordinate/SetTextureCoordinate commands manually.