Ask Questions?

View Latest Questions

Advertisement


 
 

Polygons
Posted on: July 26, 2006 at 12:00 AM
Use the addPoint(int xcoord, int ycoord) method to add one point to the polygon.

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 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.
Copyleft 2003 Fred Swartz MIT License, Last update: 2002-12-06
Advertisement


DMCA.com