# java.awt.geom

***

**1. Create a Rectangle2D Shape:**

```java
import java.awt.geom.Rectangle2D;

Rectangle2D rectangle = new Rectangle2D.Double(10, 10, 100, 50);
```

**2. Create an Ellipse2D Shape:**

```java
import java.awt.geom.Ellipse2D;

Ellipse2D ellipse = new Ellipse2D.Double(10, 10, 100, 50);
```

**3. Create a Line2D Shape:**

```java
import java.awt.geom.Line2D;

Line2D line = new Line2D.Double(10, 10, 100, 50);
```

**4. Create a Path2D Shape:**

```java
import java.awt.geom.Path2D;

Path2D path = new Path2D.Double();
```

**5. Create a RoundRectangle2D Shape:**

```java
import java.awt.geom.RoundRectangle2D;

RoundRectangle2D roundedRectangle = new RoundRectangle2D.Double(10, 10, 100, 50, 25, 25);
```

**6. Create a CubicCurve2D Shape:**

```java
import java.awt.geom.CubicCurve2D;

CubicCurve2D curve = new CubicCurve2D.Double();
```

**7. Create a QuadCurve2D Shape:**

```java
import java.awt.geom.QuadCurve2D;

QuadCurve2D curve = new QuadCurve2D.Double();
```

**8. Get the Bounds of a Shape:**

```java
Rectangle2D bounds = shape.getBounds2D();
```

**9. Translate a Shape:**

```java
shape.translate(10, 10);
```

**10. Rotate a Shape:**

```java
shape.rotate(Math.PI / 2);
```

**11. Scale a Shape:**

```java
shape.scale(2.0, 2.0);
```

**12. Check if a Shape Contains a Point:**

```java
if (shape.contains(point)) {
    // ...
}
```

**13. Check if a Shape Intersects Another Shape:**

```java
if (shape1.intersects(shape2)) {
    // ...
}
```

**14. Get the Area of a Shape:**

```java
double area = shape.getArea();
```

**15. Get the Perimeter of a Shape:**

```java
double perimeter = shape.getPathLength();
```

**16. Draw a Shape:**

```java
import java.awt.Graphics2D;

Graphics2D g = (Graphics2D) canvas.getGraphics();
g.draw(shape);
```

**17. Fill a Shape:**

```java
import java.awt.Graphics2D;

Graphics2D g = (Graphics2D) canvas.getGraphics();
g.fill(shape);
```

**18. Stroke a Shape:**

```java
import java.awt.Graphics2D;
import java.awt.Stroke;

Graphics2D g = (Graphics2D) canvas.getGraphics();

Stroke oldStroke = g.getStroke();
g.setStroke(new BasicStroke(5.0f));
g.stroke(shape);
g.setStroke(oldStroke);
```

**19. Create a PathIterator for a Shape:**

```java
PathIterator iterator = shape.getPathIterator(null);
```

**20. Create a Transformed Shape:**

```java
AffineTransform transform = new AffineTransform();
transform.translate(10, 10);
transform.rotate(Math.PI / 2);

Shape transformedShape = shape.createTransformedShape(transform);
```

**21. Create a Combined Shape:**

```java
Shape shape1 = new Rectangle2D.Double(10, 10, 100, 50);
Shape shape2 = new Ellipse2D.Double(50, 50, 100, 50);

Shape combinedShape = Shape.intersect(shape1, shape2);
```

**22. Create a Difference Shape:**

```java
Shape shape1 = new Rectangle2D.Double(10, 10, 100, 50);
Shape shape2 = new Ellipse2D.Double(50, 50, 100, 50);

Shape differenceShape = Shape.subtract(shape1, shape2);
```

**23. Create a Union Shape:**

```java
Shape shape1 = new Rectangle2D.Double(10, 10, 100, 50);
Shape shape2 = new Ellipse2D.Double(50, 50, 100, 50);

Shape unionShape = Shape.union(shape1, shape2);
```

**24. Create a Personalized Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.lineTo(100, 50);
path.lineTo(10, 90);
path.closePath();
```

**25. Create a Star Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
double angle = 0.0;
double step = Math.PI / 5;
for (int i = 0; i < 5; i++) {
    path.lineTo(50 + 50 * Math.cos(angle), 50 + 50 * Math.sin(angle));
    angle += step;
}
path.closePath();
```

**26. Create an Arrow Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.lineTo(100, 50);
path.lineTo(10, 90);
path.lineTo(20, 50);
path.closePath();
```

**27. Create a Heart Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(50, 10);
path.curveTo(0, 50, 0, 100, 50, 150);
path.curveTo(100, 100, 100, 50, 50, 10);
path.closePath();
```

**28. Create a Leaf Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.lineTo(50, 50);
path.lineTo(10, 90);
path.lineTo(20, 50);
path.closePath();
```

**29. Create a Cloud Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.curveTo(50, 10, 90, 30, 130, 50);
path.curveTo(170, 70, 190, 110, 210, 150);
path.curveTo(230, 190, 250, 230, 270, 250);
path.curveTo(310, 270, 350, 250, 390, 210);
path.curveTo(430, 170, 450, 110, 470, 50);
path.curveTo(510, 30, 550, 10, 590, 10);
path.closePath();
```

**30. Create a Tree Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.lineTo(50, 50);
path.lineTo(10, 90);
path.lineTo(20, 50);
path.closePath();

path.moveTo(30, 10);
path.lineTo(70, 50);
path.lineTo(30, 90);
path.lineTo(40, 50);
path.closePath();

path.moveTo(50, 10);
path.lineTo(90, 50);
path.lineTo(50, 90);
path.lineTo(60, 50);
path.closePath();
```

**31. Create a Flower Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.curveTo(20, 20, 30, 30, 40, 40);
path.curveTo(50, 50, 60, 60, 70, 70);
path.curveTo(80, 80, 90, 90, 100, 100);
path.curveTo(110, 110, 120, 120, 130, 130);
path.curveTo(140, 140, 150, 150, 160, 160);
path.curveTo(170, 170, 180, 180, 190, 190);
path.curveTo(200, 200, 210, 210, 220, 220);
path.curveTo(230, 230, 240, 240, 250, 250);
path.curveTo(260, 260, 270, 270, 280, 280);
path.curveTo(290, 290, 300, 300, 310, 310);
path.curveTo(320, 320, 330, 330, 340, 340);
path.curveTo(350, 350, 360, 360, 370, 370);
path.curveTo(380, 380, 390, 390, 400, 400);
path.curveTo(410, 410, 420, 420, 430, 430);
path.curveTo(440, 440, 450, 450, 460, 460);
path.curveTo(470, 470, 480, 480, 490, 490);
path.curveTo(500, 500, 510, 510, 520, 520);
```

**32. Create a House Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.lineTo(100, 10);
path.lineTo(100, 50);
path.lineTo(50, 100);
path.lineTo(10, 50);
path.closePath();

path.moveTo(30, 30);
path.lineTo(70, 30);
path.lineTo(70, 70);
path.lineTo(30, 70);
path.closePath();
```

**33. Create a Car Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.lineTo(100, 10);
path.lineTo(100, 50);
path.lineTo(50, 100);
path.lineTo(10, 50);
path.closePath();

path.moveTo(30, 30);
path.lineTo(70, 30);
path.lineTo(70, 70);
path.lineTo(30, 70);
path.closePath();

path.moveTo(20, 90);
path.lineTo(80, 90);
```

**34. Create a Boat Shape:**

```java
import java.awt.geom.Path2D;
import java.awt.geom.Point2D;

Path2D path = new Path2D.Double();
path.moveTo(10, 10);
path.lineTo(100, 10);
path.lineTo(100, 50);
path.lineTo(50, 100);
path.lineTo(10, 50);
path.closePath();

path.moveTo(30, 30);
path.lineTo(70, 30);
path.lineTo(70, 70);
path.lineTo(30, 70);
path.closePath();

path.moveTo(20, 90);
path.lineTo(80,

```
