public SutherlandHodgmanClipping() {
setPreferredSize(new Dimension(600, 500));
// these subject and clip points are assumed to be valid
Polygon2D subjPoints = new Polygon2D();
subjPoints.add(new Vector2D(50, 150));
subjPoints.add(new Vector2D(200, 50));
subjPoints.add(new Vector2D(350, 150));
subjPoints.add(new Vector2D(350, 300));
subjPoints.add(new Vector2D(250, 300));
subjPoints.add(new Vector2D(200, 250));
subjPoints.add(new Vector2D(150, 350));
subjPoints.add(new Vector2D(100, 250));
subjPoints.add(new Vector2D(100, 200));
Polygon2D clipPoints = new Polygon2D();
clipPoints.add(new Vector2D(125, 40));
clipPoints.add(new Vector2D(300, 100));
clipPoints.add(new Vector2D(350, 350));
clipPoints.add(new Vector2D(200, 350));
clipPoints.add(new Vector2D(100, 300));
p1 = new Polygon2D(subjPoints);
p2 = new Polygon2D(clipPoints);
result = p1.clipPolygonOneConvex(p2);
}