New geometric shapes are created by operations of Boolean at the existing ones. This is what is known as CAG i.e. constructive area geometry. In Java 2D API, shape interface is implemented by the area class. Following Boolean operations are supported by it.
Constructing Complex Shapes from Geometry Primitives
An intersection at 2 overlapping circles is performed to create the leaves
leaf = new Ellipse2D.Double();