1 import java.awt.Graphics2D;
2 import java.awt.Rectangle;
3 import java.awt.geom.Ellipse2D;
4 import java.awt.geom.Line2D;
5 import java.awt.geom.Point2D;
6
7 /**
8 A car shape that can be positioned anywhere on the screen.
9 */
10 public class Car
11 {
12 private int xLeft;
13 private int yTop;
14
15 /**
16 Constructs a car with a given top left corner.
17 @param x the x coordinate of the top left corner
18 @param y the y coordinate of the top left corner
19 */
20 public Car(int x, int y)
21 {
22 xLeft = x;
23 yTop = y;
24 }
25
26 /**
27 Draws the car.
28 @param g2 the graphics context
29 */
30 public void draw(Graphics2D g2)
31 {
32 Rectangle body
33 = new Rectangle(xLeft, yTop + 10, 60, 10);
34 Ellipse2D.Double frontTire
35 = new Ellipse2D.Double(xLeft + 10, yTop + 20, 10, 10);
36 Ellipse2D.Double rearTire
37 = new Ellipse2D.Double(xLeft + 40, yTop + 20, 10, 10);
38
39 // The bottom of the front windshield
40 Point2D.Double r1
41 = new Point2D.Double(xLeft + 10, yTop + 10);
42 // The front of the roof
43 Point2D.Double r2
44 = new Point2D.Double(xLeft + 20, yTop);
45 // The rear of the roof
46 Point2D.Double r3
47 = new Point2D.Double(xLeft + 40, yTop);
48 // The bottom of the rear windshield
49 Point2D.Double r4
50 = new Point2D.Double(xLeft + 50, yTop + 10);
51
52 Line2D.Double frontWindshield
53 = new Line2D.Double(r1, r2);
54 Line2D.Double roofTop
55 = new Line2D.Double(r2, r3);
56 Line2D.Double rearWindshield
57 = new Line2D.Double(r3, r4);
58
59 g2.draw(body);
60 g2.draw(frontTire);
61 g2.draw(rearTire);
62 g2.draw(frontWindshield);
63 g2.draw(roofTop);
64 g2.draw(rearWindshield);
65 }
66 }