# polygon problem help

• 12-11-2012, 08:30 PM
liulca
polygon problem help
hello
I would like to draw 4 different polygons each polygon has its own "id" and its points in an arraylist I'm working on this code but I can not draw polygons asking for your help I thank you in advance :smash:

import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Polygons2 extends JPanel {

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);

//polygon 1 point 3

//polygon 2 point 4

//polygon 3 point 6

//polygon 4 point 12

for (POINTS n : POLYGON) {
List PolygonsForID = PolygonsByID.get(n.getID());
if (PolygonsForID == null) {
PolygonsForID = new ArrayList<POINTS>();
PolygonsByID.put(n.getID(), PolygonsForID);
Collections.sort(PolygonsForID);
}
}
for(Map.Entry<Integer,List<POINTS>> count : PolygonsByID.entrySet()) {
int np = count.getValue().size();
System.out.println("polygon : " + count.getKey() + " points : " + np);

int n = 25 ;
int[] x = new int[n];
int[] y = new int[n];
int counter = 0;

for (POINTS pnt : POLYGON) {
x[counter] = pnt.getX();
y[counter++] = pnt.getY();
}
Polygon[] polygons = new Polygon[4];
for (int i = 0; i < polygons.length; i++) {
polygons[i] = new Polygon();
polygons[i] = new Polygon(x, y, np);
g.setColor(Color.RED);
g.drawPolygon(polygons[i]);
}
}
}

public class POINTS {

private int ID;
private int X;
private int Y;

public POINTS(
int ID, int X, int Y) {
this.ID = ID;
this.X = X;
this.Y = Y;
}

public int getX() {
return X;
}

public int getY() {
return Y;
}

public int getID() {
return ID;
}
}

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("Polygons2");
frame.setSize(550, 550);

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();

frame.show();
}
}
• 12-11-2012, 08:31 PM
Sierra
Re: polygon problem help
"but I can not draw polygons " is a little too short as problem description, what do you expect, what happens exactly (output?)
• 12-11-2012, 08:38 PM
liulca
Re: polygon problem help
I do not understand:(shake):
• 12-11-2012, 08:52 PM
liulca
Re: polygon problem help
Java Code:

import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Polygons2 extends JPanel {

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);

//polygon 1 point 3

//polygon 2 point 4

//polygon 3 point 6

//polygon 4 point 12

for (POINTS n : POLYGON) {
List PolygonsForID = PolygonsByID.get(n.getID());
if (PolygonsForID == null) {
PolygonsForID = new ArrayList<POINTS>();
PolygonsByID.put(n.getID(), PolygonsForID);
Collections.sort(PolygonsForID);
}
}
for(Map.Entry<Integer,List<POINTS>> count : PolygonsByID.entrySet()) {
int np = count.getValue().size();
System.out.println("polygon : " + count.getKey() + " points : " + np);

int n = 25 ;
int[] x = new int[n];
int[] y = new int[n];
int counter = 0;

for (POINTS pnt : POLYGON) {
x[counter] = pnt.getX();
y[counter++] = pnt.getY();
}
Polygon[] polygons = new Polygon[4];
for (int i = 0; i < polygons.length; i++) {
polygons[i] = new Polygon();
polygons[i] = new Polygon(x, y, np);
g.setColor(Color.RED);
g.drawPolygon(polygons[i]);
}
}
}

public class POINTS {

private int ID;
private int X;
private int Y;

public POINTS(
int ID, int X, int Y) {
this.ID = ID;
this.X = X;
this.Y = Y;
}

public int getX() {
return X;
}

public int getY() {
return Y;
}

public int getID() {
return ID;
}
}

public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("Polygons2");
frame.setSize(550, 550);

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();

frame.show();
}
}
• 12-11-2012, 08:54 PM
liulca
Re: polygon problem help
Code:

```< import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Polygon; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.swing.JFrame; import javax.swing.JPanel; public class Polygons2 extends JPanel { @Override public void paintComponent(Graphics g) { super.paintComponent(g); Set<POINTS> POLYGON = new LinkedHashSet<POINTS>(); //polygon 1 point 3 POLYGON.add(new POINTS(1, 50, 20)); POLYGON.add(new POINTS(1, 70, 30)); POLYGON.add(new POINTS(1, 50, 40)); //polygon 2 point 4 POLYGON.add(new POINTS(2, 100, 20)); POLYGON.add(new POINTS(2, 130, 30)); POLYGON.add(new POINTS(2, 100, 40)); POLYGON.add(new POINTS(2, 120, 30)); //polygon 3 point 6 POLYGON.add(new POINTS(3, 250, 20)); POLYGON.add(new POINTS(3, 280, 30)); POLYGON.add(new POINTS(3, 250, 40)); POLYGON.add(new POINTS(3, 230, 20)); POLYGON.add(new POINTS(3, 280, 30)); POLYGON.add(new POINTS(3, 250, 50)); //polygon 4 point 12 POLYGON.add(new POINTS(4, 350, 20)); POLYGON.add(new POINTS(4, 380, 30)); POLYGON.add(new POINTS(4, 350, 40)); POLYGON.add(new POINTS(4, 330, 20)); POLYGON.add(new POINTS(4, 380, 30)); POLYGON.add(new POINTS(4, 350, 50)); POLYGON.add(new POINTS(4, 350, 20)); POLYGON.add(new POINTS(4, 380, 30)); POLYGON.add(new POINTS(4, 330, 60)); POLYGON.add(new POINTS(4, 340, 50)); POLYGON.add(new POINTS(4, 340, 30)); POLYGON.add(new POINTS(4, 320, 30)); Map<Integer,List<POINTS>> PolygonsByID = new LinkedHashMap<Integer,List<POINTS>>(); for (POINTS n : POLYGON) { List PolygonsForID = PolygonsByID.get(n.getID()); if (PolygonsForID == null) { PolygonsForID = new ArrayList<POINTS>(); PolygonsByID.put(n.getID(), PolygonsForID); Collections.sort(PolygonsForID); } PolygonsForID.add(n); } for(Map.Entry<Integer,List<POINTS>> count : PolygonsByID.entrySet()) { int np = count.getValue().size(); System.out.println("polygon : " + count.getKey() + " points : " + np); int n = 25 ; int[] x = new int[n]; int[] y = new int[n]; int counter = 0; for (POINTS pnt : POLYGON) { x[counter] = pnt.getX(); y[counter++] = pnt.getY(); } Polygon[] polygons = new Polygon[4]; for (int i = 0; i < polygons.length; i++) { polygons[i] = new Polygon(); polygons[i] = new Polygon(x, y, np); g.setColor(Color.RED); g.drawPolygon(polygons[i]); } } } public class POINTS { private int ID; private int X; private int Y; public POINTS( int ID, int X, int Y) { this.ID = ID; this.X = X; this.Y = Y; } public int getX() { return X; } public int getY() { return Y; } public int getID() { return ID; } } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setTitle("Polygons2"); frame.setSize(550, 550); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = frame.getContentPane(); contentPane.add(new Polygons2()); frame.show(); } } >```
• 12-11-2012, 10:12 PM
DarrylBurke
Re: polygon problem help
Code Conventions for the Java Programming Language: Contents -- especially the part about indenting code.

db
• 12-11-2012, 11:06 PM
liulca
Re: polygon problem help
hello
excuse me where am I wrong

Code:

```< import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Polygon; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.swing.JFrame; import javax.swing.JPanel; public class Polygons2 extends JPanel {     @Override     public void paintComponent(Graphics g) {         super.paintComponent(g);         Set<POINTS> POLYGON = new LinkedHashSet<POINTS>(); //polygon 1 point 3         POLYGON.add(new POINTS(1, 50, 20));         POLYGON.add(new POINTS(1, 70, 30));         POLYGON.add(new POINTS(1, 50, 40)); //polygon 2 point 4         POLYGON.add(new POINTS(2, 100, 20));         POLYGON.add(new POINTS(2, 130, 30));         POLYGON.add(new POINTS(2, 100, 40));         POLYGON.add(new POINTS(2, 120, 30)); //polygon 3 point 6         POLYGON.add(new POINTS(3, 250, 20));         POLYGON.add(new POINTS(3, 280, 30));         POLYGON.add(new POINTS(3, 250, 40));         POLYGON.add(new POINTS(3, 230, 20));         POLYGON.add(new POINTS(3, 280, 30));         POLYGON.add(new POINTS(3, 250, 50)); //polygon 4 point 12         POLYGON.add(new POINTS(4, 350, 20));         POLYGON.add(new POINTS(4, 380, 30));         POLYGON.add(new POINTS(4, 350, 40));         POLYGON.add(new POINTS(4, 330, 20));         POLYGON.add(new POINTS(4, 380, 30));         POLYGON.add(new POINTS(4, 350, 50));         POLYGON.add(new POINTS(4, 350, 20));         POLYGON.add(new POINTS(4, 380, 30));         POLYGON.add(new POINTS(4, 330, 60));         POLYGON.add(new POINTS(4, 340, 50));         POLYGON.add(new POINTS(4, 340, 30));         POLYGON.add(new POINTS(4, 320, 30));         Map<Integer, List<POINTS>> PolygonsByID = new LinkedHashMap<Integer, List<POINTS>>();         for (POINTS n : POLYGON) {             List PolygonsForID = PolygonsByID.get(n.getID());             if (PolygonsForID == null) {                 PolygonsForID = new ArrayList<POINTS>();                 PolygonsByID.put(n.getID(), PolygonsForID);                 Collections.sort(PolygonsForID);             }             PolygonsForID.add(n);         }         for (Map.Entry<Integer, List<POINTS>> count : PolygonsByID.entrySet()) {             int np = count.getValue().size();             System.out.println("polygon : " + count.getKey() + " points : " + np);             int n = 25;             int[] x = new int[n];             int[] y = new int[n];             int counter = 0;             for (POINTS pnt : POLYGON) {                 x[counter] = pnt.getX();                 y[counter++] = pnt.getY();             }             Polygon[] polygons = new Polygon[1];             for (int i = 0; i < polygons.length; i++) {                 polygons[i] = new Polygon();                 polygons[i] = new Polygon(x, y, np);                 g.setColor(Color.RED);                 g.drawPolygon(polygons[i]);             }         }     }     public class POINTS {         private int ID;         private int X;         private int Y;         public POINTS(                 int ID, int X, int Y) {             this.ID = ID;             this.X = X;             this.Y = Y;         }         public int getX() {             return X;         }         public int getY() {             return Y;         }         public int getID() {             return ID;         }     }     public static void main(String[] args) {         JFrame frame = new JFrame();         frame.setTitle("Polygons2");         frame.setSize(550, 550);         frame.addWindowListener(new WindowAdapter() {             @Override             public void windowClosing(WindowEvent e) {                 System.exit(0);             }         });         Container contentPane = frame.getContentPane();         contentPane.add(new Polygons2());         frame.show();     } } >```