Tetrahedron
正四面體 (Tetrahedron) 共有4個頂點與4個面,若各邊長為,則其頂點座標分別為:
可簡化為以下之組合:
請參考以下範例。
程式說明
範例示範以TriangleMesh
類別依序設定頂點座標、貼圖座標與三角形所組成的面,藉此組成正四面體 (Tetrahedron)。
步驟一:設定頂點座標。
首先設定正四面體的頂點座標:
float p0 = length*1.0f;
float p1 = 0.0f;
float p2 = (float) (length*Math.sqrt(2.0)/2.0f);
// 建立TriangleMesh
TriangleMesh trianglemesh = new TriangleMesh();
// 設定頂點座標
trianglemesh.getPoints().addAll(
p0, p1, -p2,
-p0, p1, -p2,
p1, p0, p2,
p1, -p0, p2
);
...
步驟二:設定貼圖座標。
接著以getTexCoords().addAll()
方法設定貼圖座標:
// 設定貼圖座標
trianglemesh.getTexCoords().addAll(
0.50f, 1.00f,
0.75f, (float) (1.0-Math.sqrt(3.0)/4.0f),
0.25f, (float) (1.0-Math.sqrt(3.0)/4.0f),
1.00f, 1.00f,
0.50f, (float) (1.0-Math.sqrt(3.0)/2.0f),
0.00f, 1.00f
);
...
步驟三:以頂點組成三角形的面。
接著以getFaces().addAll()
方法依頂點與貼圖的序號組成正四面體的各個面:
// 設定各三角形的面
trianglemesh.getFaces().addAll(
0, 0, 1, 1, 2, 2,
1, 1, 0, 0, 3, 3,
2, 2, 1, 1, 3, 4,
0, 0, 2, 2, 3, 5
);
...
步驟四:設定各面的平滑參數。
平滑參數主要運用於使相鄰兩面邊緣平滑化,避免不規則鋸齒狀的現象。以getFaceSmoothingGroups().addAll()
方法設定各面的平滑參數:
// 設定各面的平滑參數
trianglemesh.getFaceSmoothingGroups().addAll(0, 2, 4, 8);
...
最後以MeshView
類別建立正四面體:
// 建立MeshView
MeshView meshview;
meshview = new MeshView(createMesh(150));
...
執行結果
以下是以線框的方式繪製正四面體:
以下是以貼圖的方式繪製正四面體: