Create 3d Shapes

  • Besides learning to identify various geometric shapes and important concepts like symmetry, dimensions, and plane, your young student can print, cut, and create models that bring 3D shapes to life. They will be amazed when they create their own 3D cubes, cones, and even triangular prisms and pyramids.
  • 3D shapes are not flat shapes, they are solid shapes like a football or an ice cube. Can you make yourself into a 3D shape? Try to match up the solid shape with it's shadow.
  • JavaFX Tutorial
  • JavaFX Useful Resources

3D Creator is a modeling and animation tool that makes it easy to get started in the world of 3D modeling. Plenty of tutorials are included so you won't get lost along the way. Great for all skill levels, 3D Creator makes creating 3D shapes about as easy.

  • 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.

Create

3D Shape

Create 3d shapes with paper

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

Shapes

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.NoShape & Description
1Box

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 −

  • width − The width of the box.

  • height − The height of the box.

  • depth − The depth of the box.

2Cylinder

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 −

  • height − The height of the Cylinder.

  • radius − The radius of the Cylinder.

3Sphere

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

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.

3d shape template printable

Create 3d Shapes Powerpoint

By default, the material of a 3-Dimensional shape is a PhongMaterial with a diffuse color of light gray.

Example

Create 3d Shapes Online

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.

Create 3d Shapes For Kids

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 −