SketchUp is a premier 3D design software that truly makes 3D modeling for everyone, with a simple to learn yet robust toolset that empowers you to create whatever you can imagine. In Geometry, 3D shapes are known as three-dimensional shapes or solids. 3D shapes have three different measures such as length, width, and height as its dimensions. The only difference between 2D shape and 3D shapes is that 2D shapes do not have a thickness or depth. Usually, 3D shapes are obtained from the rotation of the 2D shapes.
- JavaFX Tutorial
- JavaFX Useful Resources
- Selected Reading
In the earlier chapters, we have seen how to draw 2D shapes on an XY plane. In addition to these 2D shapes, we can draw several other 3D shapes as well using JavaFX.
3D Shape
In general, a 3D shape is a geometrical figure that can be drawn on the XYZ plane. These include a Cylinder, Sphere and a Box.
Each of the above mentioned 3D shape is represented by a class and all these classes belong to the package javafx.scene.shape. The class named Shape3D is the base class of all the 3-Dimensional shapes in JavaFX.
Creating a 3D Shape
To create a 3-Dimensional shape, you need to −
Instantiate the respective class of the required 3D shape.
Set the properties of the 3D shape.
Add the 3D shape object to the group.
Instantiating the Respective Class
To create a 3-Dimensional shape, first of all you need to instantiate its respective class. For example, if you want to create a 3D box, you need to instantiate the class named Box as follows −
Setting the Properties of the Shape
After instantiating the class, you need to set the properties for the shape using the setter methods.
For example, to draw a 3D box you need to pass its Width, Height, Depth. You can specify these values using their respective setter methods as follows −
Adding the Shape Object to the Group
Finally, you need to add the object of the shape to the group by passing it as a parameter of the constructor as shown below.
The following table gives you the list of various 3D shapes provided by JavaFX.
S.No | Shape & Description |
---|---|
1 | Box A cuboid is a three-dimensional shape with a length (depth), width, and a height. In JavaFX a three-dimensional box is represented by a class named Box. This class belongs to the package javafx.scene.shape. By instantiating this class, you can create a Box node in JavaFX. This class has 3 properties of the double datatype namely −
|
2 | Cylinder A cylinder is a closed solid that has two parallel (mostly circular) bases connected by a curved surface. It is described by two parameters, namely, the radius of its circular base and the height of the cylinder. In JavaFX, a cylinder is represented by a class named Cylinder. This class belongs to the package javafx.scene.shape. By instantiating this class, you can create a cylinder node in JavaFX. This class has 2 properties of the double datatype namely −
|
3 | Sphere A sphere is defined as the set of points that are all at the same distance r from a given point in a 3D space. This distance r is the radius of the sphere and the given point is the centre of the sphere. In JavaFX, a sphere is represented by a class named Sphere. This class belongs to the package javafx.scene.shape. By instantiating this class, you can create a sphere node in JavaFX. This class has a property named radius of double datatype. It represents the radius of a Sphere. |
Properties of 3D Objects
For all the 3 Dimensional objects, you can set various properties like Cull Face, Drawing Mode, Material.
The following section discusses the properties of 3D objects.
Cull Face
In general, culling is the removal of improperly oriented parts of a shape (which are not visible in the view area).
The Cull Face property is of the type CullFace and it represents the Cull Face of a 3D shape. You can set the Cull Face of a shape using the method setCullFace() as shown below −
The stroke type of a shape can be −
None − No culling is performed (CullFace.NONE).
Front − All the front facing polygons are culled. (CullFace.FRONT).
Back − All the back facing polygons are culled. (StrokeType.BACK).
By default, the cull face of a 3-Dimensional shape is Back.
Example
The following program is an example which demonstrates various cull faces of the sphere. Save this code in a file with the name SphereCullFace.java.
Compile and execute the saved Java file from the command prompt using the following commands.
On executing, the above program generates a JavaFX window displaying three spheres with cull face values FRONT, BACK and NONE respectively as follows −
Drawing Modes
It is the property is of the type DrawMode and it represents the drawing mode used to draw the current 3D shape. You can choose the draw mode to draw a 3D shape using the method setDrawMode () as follows −
In JavaFX, you can choose two draw modes to draw a 3D shape, which are −
Fill − This mode draws and fills a 2D shape (DrawMode.FILL).
Line − This mode draws a 3D shape using lines (DrawMode.LINE).
By default, the drawing mode of a 3Dimensional shape is fill.
Example
The following program is an example which demonstrates various draw modes of a 3D box. Save this code in a file with the name BoxDrawMode.java.
Compile and execute the saved java file from the command prompt using the following commands.
On executing, the above program generates a JavaFX window displaying two boxes with draw mode values LINE and FILL respectively, as follows −
Material
Create 3d Shapes For Powerpoint
The cull Face property is of the type Material and it is used to choose the surface of the material of a 3D shape. You can set the material of a 3D shape using the method setCullFace() as follows −
As mentioned above for this method, you need to pass an object of the type Material. The PhongMaterial class of the package javafx.scene.paint is a sub class of this class and provides 7 properties that represent a Phong shaded material. You can apply all these type of materials to the surface of a 3D shape using the setter methods of these properties.
Following are the type of materials that are available in JavaFX −
bumpMap − This represents a normal map stored as a RGB Image.
diffuseMap − This represents a diffuse map.
selfIlluminationMap − This represents a self-illumination map of this PhongMaterial.
specularMap − This represents a specular map of this PhongMaterial.
diffuseColor − This represents a diffuse color of this PhongMaterial.
specularColor − This represents a specular color of this PhongMaterial.
specularPower − This represents a specular power of this PhongMaterial.
By default, the material of a 3-Dimensional shape is a PhongMaterial with a diffuse color of light gray.
Create 3d Shapes Using Python
Example
Following is an example which displays various materials on the cylinder. Save this code in a file with the name CylinderMaterials.java.
Making 3d Shapes
Compile and execute the saved java file from the command prompt using the following commands.
On executing, the above program generates a JavaFX window displaying 7 cylinders with Materials, Bump Map, Diffuse Map, Self-Illumination Map, Specular Map, Diffuse Color, Specular Color, (BLANCHEDALMOND) Specular Power, respectively, as shown in the following screenshot −