javaFX图形——几何3D

前面根据官网的教程,简单的做了一个javaFX的HelloWorld的入门程序以及做了一个用户的登录界面,用来了解学习javaFX中如何使用CSS,FXML的一些基本知识,相信大家都对javaFX有了一个初步的了解和认识。现在,我们开始学习javaFX的中3D特性。本文开始从javaFX中的3D几何讲起。

javaFX提供了两种方式,让我们来创建3D几何图形。

1.预定义几何图形

2.自定义几何图形

预定义几何

预定义3D几何提供了一种轻松简单的方式让我们快速的创建3D对象,它包含了如下几何,长方体,圆柱体,球体,如下图所示:

javaFX图形——几何3D_第1张图片

关于javaFX中的几何3D类的层级关系如下图所示:它包括了MeshView类(这是一个指定3D网格数据展示类),同时也包含了长方体(Box),圆柱体(Cvlinder),和球体(Sphere)

javaFX图形——几何3D_第2张图片

我们可以使用如下事例创建预定义的3D几何图形:

创建一个长方体对象,需要指定其宽,高,深度的规格大小

Box myBox = new Box(width, height, depth);
创建一个圆柱需要指定其半径和高:

Cylinder myCylinder = new Cylinder(radius, height);
创建一个球体需要指定半径:

Sphere mySphere = new Sphere(radius);

自定义的3D几何:

下图显示了JavaFX网类层次结构,其中包含TriangleMesh子类。三角网是最典型的一种网中使用3 d布局。

三角网包含单独的点阵列,纹理坐标以及描述三角几何网格面。平滑组用于组三角形同一曲面的一部分。平滑组不同就会形成硬边。

我们按照如下步骤创建三角网实例:

创建一个三角网实例

mesh = new TriangleMesh();
从网格的顶点开始设置点:

float points[] = { … };
mesh.getPoints().addAll(points);
描述每个顶点的纹理坐标:

float texCoords[] = { … };
mesh.getTexCoords().addAll(texCoords);
使用顶点构建三角形拓扑面

int faces[] = { … };
mesh.getFaces().addAll(faces);
定义每个面所属的平滑组:

int smoothingGroups[] = { … };
mesh.getFaceSmoothingGroups().addAll(smoothingGroups);


你可能感兴趣的:(javaFX)