Cylinder
Cylinder類別用以建立圓柱體,其建構函式如下:
public Cylinder()
public Cylinder(double radius, double height)
public Cylinder(double radius, double height, int divisions)
其中參數:
radius:設定圓柱體的半徑。height:設定圓柱體的高度。divisions:設定圓柱體的分割等分,以產生不同類型的立方柱體。
其方法包括:
getHeight():取得圓柱體的高度。setHeight():設定圓柱體的高度。getRadius():取得圓柱體的半徑。setRadius():設定圓柱體的半徑。getDivisions():取得圓柱體的分割等分。
請注意並沒有setDivisions()方法,因此欲設定圓柱體的分割等分,僅能使用Cylinder類別的建構函式宣告。
請參考以下範例。
程式說明
範例示範以Cylinder類別建立圓柱體,並分別以setCullFace()與setDrawMode()方法設定不省略描繪任何一面與以線框方式繪製圓柱體:
// 建立圓柱體
Cylinder cylinder;
cylinder = new Cylinder();
// 設定圓柱體的高度
cylinder.setHeight(150);
// 設定圓柱體的半徑
cylinder.setRadius(80);
// 設定不省略描繪任何一面
cylinder.setCullFace(CullFace.NONE);
// 設定以線框方式繪製
cylinder.setDrawMode(DrawMode.LINE);
// 平移Cylinder物件
cylinder.setLayoutX(150);
cylinder.setLayoutY(150);
// 旋轉Cylinder物件
cylinder.getTransforms().add(new Rotate(20, Rotate.X_AXIS));
cylinder.getTransforms().add(new Rotate(10, Rotate.Y_AXIS));
cylinder.getTransforms().add(new Rotate(30, Rotate.Z_AXIS));
...
執行結果

請參考以下範例。
程式說明
範例示範以setCullFace()方法設定省略描繪Back Face:
// 建立圓柱體
Cylinder cylinder;
cylinder = new Cylinder();
// 設定圓柱體的高度
cylinder.setHeight(150);
// 設定圓柱體的半徑
cylinder.setRadius(80);
// 設定省略描繪Back Face
cylinder.setCullFace(CullFace.BACK);
// 設定以線框方式繪製
cylinder.setDrawMode(DrawMode.LINE);
...
執行結果

請參考以下範例。
程式說明
範例示範以setCullFace()方法設定省略描繪Front Face:
// 建立圓柱體
Cylinder cylinder;
cylinder = new Cylinder();
// 設定圓柱體的高度
cylinder.setHeight(150);
// 設定圓柱體的半徑
cylinder.setRadius(80);
// 設定省略描繪Front Face
cylinder.setCullFace(CullFace.FRONT);
// 設定以線框方式繪製
cylinder.setDrawMode(DrawMode.LINE);
...
執行結果

請參考以下範例。
程式說明
範例示範以setDrawMode()方法設定以填滿的方式繪製圓柱體:
// 建立圓柱體
Cylinder cylinder;
cylinder = new Cylinder();
// 設定圓柱體的高度
cylinder.setHeight(150);
// 設定圓柱體的半徑
cylinder.setRadius(80);
// 設定省略描繪Back Face
cylinder.setCullFace(CullFace.BACK);
// 設定以填滿的方式繪製圓柱體
cylinder.setDrawMode(DrawMode.FILL);
...
執行結果

請參考以下範例。
程式說明
範例示範以Shape3D抽象類別的setMaterial()方法設定物體表面的材質,其中以PhongMaterial類別的setDiffuseColor()與setSpecularColor()方法分別設定漫射光與反射光的顏色。此外並以Cylinder類別的建構函式設定divisions參數,將圓柱體切割為八角柱體 (Octagonal Prism):
// 建立圓柱體
Cylinder cylinder;
// 設定divisions參數
cylinder = new Cylinder(80, 150, 8);
// 設定省略描繪Back Face
cylinder.setCullFace(CullFace.BACK);
// 設定以填滿的方式繪製圓柱體
cylinder.setDrawMode(DrawMode.FILL);
// 設定Phong Material
PhongMaterial material = new PhongMaterial();
// 設定漫射光顏色
material.setDiffuseColor(Color.RED);
// 設定反射光顏色
material.setSpecularColor(Color.WHITE);
// 設定物體表面的材質
cylinder.setMaterial(material);
...
執行結果

請參考以下範例。
程式說明
範例示範以Shape3D抽象類別的setMaterial()方法設定物體表面的材質,其中以PhongMaterial類別的setDiffuseMap()方法設定漫射貼圖:
// 建立圓柱體
Cylinder cylinder;
// 設定divisions參數
cylinder = new Cylinder(80, 150, 8);
// 設定省略描繪Back Face
cylinder.setCullFace(CullFace.BACK);
// 設定以填滿的方式繪製圓柱體
cylinder.setDrawMode(DrawMode.FILL);
Image image = new Image(
getClass().getResourceAsStream("images/JavaFX.png"));
// 設定Phong Material
PhongMaterial material = new PhongMaterial();
// 設定漫射貼圖
material.setDiffuseMap(image);
// 設定物體表面的材質
cylinder.setMaterial(material);
...
執行結果
