Mesh View
除了前述之基本3D物體之外,JavaFX並提供Mesh View (網格視圖) 進階功能。前述Box
、Cylinder
與Sphere
類別只要透過簡單的參數設定,則可建立3D物體,但也受限於此,因此僅能建立簡單的3D物體。
Mesh View為目前大部份3D軟體與程式所使用的方法,由於多邊體 (Polygon) 是由數個面 (Facet) 所組成,每一個面由數個頂點 (Vertex) 所設定,因此Mesh View沿用此一概念,以三個頂點定義三角形 (Triangle) 藉此定義多邊體的面,再以數個面組成多邊體。
Mesh View由javafx.scene.shape.MeshView
類別處理,以3D Mesh Data設定多邊體,其建構函式如下,其中參數mesh
為3D Mesh Data,可由TriangleMesh
類別設定:
public MeshView()
public MeshView(Mesh mesh)
其方法包括:
getMesh()
:取得3D Mesh Data。setMesh()
:設定3D Mesh Data。
3D Mesh Data由TriangleMesh
類別設定,由於Mesh View是以三角形定義多邊體的面,因此類別名為Triangle。TriangleMesh
類別以頂點座標 (Points)、貼圖座標 (Texture Coordinate) 與三角形所組成的面 (Faces) 組成3D物體,此外為決定面的方向性,TriangleMesh
類別以「右手定則」定義各面的上下方向。
其方法包括:
getFaceElementSize()
:取得面的數目。getFaces()
:取得3D物體所有的面。getFaceSmoothingGroups()
:取得各面的平滑 (Smoothing)參數。getPointElementSize()
:取得頂點座標的數目。getPoints()
:取得3D物體所有的頂點座標。getTexCoordElementSize()
:取得貼圖座標的數目。getTexCoords()
:取得3D物體所有的貼圖座標。