# Java Notes

# Polygons

A`java.awt.Polygon`

can be used to represent
a polygon as a set of points for the vertexes.
A polygon object can
be drawn or filled, by methods in the `java.awt.Graphics`

class.
## Creating a Polygon by adding points

Use the`addPoint(`*int xcoord*, *int ycoord*)

method to add one point to the polygon. You may add as many points
as you wish.
Polygon poly = new Polygon(); . . . // Make a triangle poly.add(100, 100); poly.add(150, 150); poly.add(50, 150);

## Creating a Polygon from arrays of coordinates

An alternative way to create a Polygon is from arrays of x and y coordinates. For example,int[]x = new int[3]; int[]y = new int[3]; int n; // count of points . . . // Make a triangle x[0]=100; x[1]=150; x[2]=50; y[0]=100; y[1]=150; y[2]=150; n = 3; . . . Polygon myTri = new Polygon(x, y, n); // a triangle

## To draw or fill a Polygon

Use the Graphics methods`g.drawPolygon(`*p*)

or
`g.fillPolygon(`*p*)

to draw or fill a polygon, where *p*is the polygon. For example,

public void paintComponent(Graphics g) { super.paintComponent(g); // paint background g.fillPolygon(myTri); // fills triangle above. }

## To check if a point is in a Polygon

One useful feature of Polygons is that it's easy to check if a point is inside or outside a polygon. Polygon's`contains(`*int x, int y*)

method
returns `true`

if the point at (x,y) is inside
the Polygon.
For example, you may want to know if
a mouse click is inside a Polygon.
public void mouseClicked(MouseEvent e) { if (myPoly.contains(e.getX(), e.getY()) { inside = true; repaint(); } }

## Translating

A polygon can be moved in the x and y directions withpoly.translate(wherexdisp,ydisp);

*xdisp*is how far to move it in the x direction from its current location, and

*ydisp*gives the corresponding y distance. The coordinates of the polygon are changed after a move.