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 with
poly.translate(xdisp, ydisp);
where
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.