- JavaFX Tutorial
- 3D shapes are solid objects that have three dimensions. These dimensions are length, width, and height. While 2D shapes are flat, 3D shapes objects that have depth to them. A soccer ball is a 3D shape, also known as a sphere, while a circle on a piece of paper is a 2D shape.
- Open a 2D image and select the layer that you want to convert to a 3D shape. Choose 3D New Shape From Layer, and select a shape from the menu. Shapes include single-mesh objects like a donut, sphere, or hat, as well as multiple mesh objects such as a cone, cube, cylinder, soda can, or wine bottle.
- 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.
- JavaFX Useful Resources
With the picture cut into a trapezoid, adjust the angle of the trapezoid so that you can see the entirety of the shape that you want to have pop-out of your picture (creating the 3D effect). To adjust the angle of the trapezoid, select the yellow diamond at the top of the shape with your mouse and adjust it manually to fit your picture. 3D shapes are solid objects that have three dimensions. These dimensions are length, width, and height. While 2D shapes are flat, 3D shapes objects that have depth to them. A soccer ball is a 3D shape, also known as a sphere, while a circle on a piece of paper is a 2D shape.
- 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 −
Create 3d Shapes In Visio
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
Making 3d Shapes
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
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.
Create 3d Shapes In Excel
By default, the material of a 3-Dimensional shape is a PhongMaterial with a diffuse color of light gray.
Example
Create 3d Shapes In Photoshop
Following is an example which displays various materials on the cylinder. Save this code in a file with the name CylinderMaterials.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 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 −