目录:
- 在这个步骤中,添加一个基本的3D对象到你的世界。 JavaFX提供了三种可以添加的基本形状:圆柱体,方框和球体。开始添加一个圆柱体:
- 渲染3D对象的面要比渲染平面的二维对象复杂得多。对于2D对象,只需通过setFill方法应用Paint对象。油漆可以是简单的颜色,渐变的颜色或图像。
- 要获得圆柱体的一些视角,可以通过平移x,y和z坐标将其移动到3D空间中的不同位置。例如:
视频: Leap Motion SDK 2024
在几个简短的步骤中,您可以开始在JavaFX中创建一个相对简单的3D程序来显示三维世界(下面显示了一个示例) 。正如你所看到的,这个3D空间包括四个形状:一个球体,一个立方体,一个圆柱体和一个金字塔。这个简短的清单显示了如何开始使用气瓶。因为这个例子技术性很强,很多关于构建3D世界的概念都会让人困惑,特别是如果这是你第一次使用3D编程的经验。
<! --1 - >
JavaFX中的3D示例程序。 第一步:添加一个圆柱体在这个步骤中,添加一个基本的3D对象到你的世界。 JavaFX提供了三种可以添加的基本形状:圆柱体,方框和球体。开始添加一个圆柱体:
圆柱体圆柱体=新圆柱体(100,50);根。的getChildren()。添加(气缸); Cylinder类的构造函数接受两个参数:圆柱的半径和高度。这个例子创造了一个大概四倍于高的曲棍球形状的圆柱体;然后,它将圆柱体添加到场景的根节点。
此时,气缸存在于世界中,但是不可见。根据你所知道的二维形状,你可能会试图通过添加填充颜色(setFill)或描边颜色(setStroke)来使其可见。但这不是3D对象的工作方式。在下一步中,您会发现如何将材料应用到圆柱体的表面,以便在场景中可见。
第二步:创建一个材质
渲染3D对象的面要比渲染平面的二维对象复杂得多。对于2D对象,只需通过setFill方法应用Paint对象。油漆可以是简单的颜色,渐变的颜色或图像。
对于3D对象,您不使用绘画。而是应用一个名为Phong材质
的特殊对象,由PhongMaterial类表示。 Phong的材料(以20世纪70年代计算机图形专家Bui Tuong Phong的名字命名)为3D对象的面部逼真渲染提供了手段。 以下代码根据两个蓝色阴影创建一个简单的Phong材质,然后将材质应用于圆柱体: PhongMaterial blueStuff = new PhongMaterial(); blueStuff。 setDiffuseColor(Color。LIGHTBLUE); blueStuff。 setSpecularColor(Color。BLUE);圆筒。 setMaterial(blueStuff);
在将Phong材料应用到气缸后,气缸将在现场内可见,如图所示。
与Phong材料的3D圆筒。
第三步:翻译圆柱
毫无疑问,圆柱看起来不是三维的。那是因为你正在边看着它:摄像机直接指向x轴和y轴的交点,而圆柱体则集中在那个点上。要获得圆柱体的一些视角,可以通过平移x,y和z坐标将其移动到3D空间中的不同位置。例如:
圆柱体。 setTranslateX(-200);圆筒。 setTranslateY(200);圆筒。 setTranslateZ(200);
在此,气缸向左移动200个单位,向下移动200个单位,距离摄像机200个单位。所得到的视图看起来更像一个圆柱体,正如你在这里看到的。翻译的3D圆柱体。
在这个图中,看起来好像圆柱体已经向前旋转了,这样就可以看到一些顶面。但是,情况并非如此。实际上发生的事情是,你不再看着汽缸边缘。
相反,由于圆柱体在相机下方,因此您可以俯视它。因此,你可以看到一些顶面。你也从侧面看它,这就解释了为什么它看起来只是一个倾斜。