public void drawMathObject(PolygonObject object, Graphics g, Point pageOrigin, float zoomLevel) { g.setColor(Color.BLACK); ScaledSizeAndPosition sap = getSizeAndPositionWithLineThickness(object, pageOrigin, zoomLevel, object.getThickness()); Graphics2D g2d = (Graphics2D) g; g2d.setStroke(new BasicStroke(sap.getLineThickness())); Polygon p = new Polygon(); GridPoint[] points = object.getAdjustedVertices(); for (int i = 0; i < points.length; i++) { p.addPoint( (int) (points[i].getx() * sap.getWidth()) + sap.getxOrigin(), (int) (points[i].gety() * sap.getHeight()) + sap.getyOrigin()); } if (object.getColor() != null) { g2d.setColor(object.getColor()); g2d.fillPolygon(p); g2d.setColor(Color.BLACK); } g2d.drawPolygon(p); g2d.setStroke(new BasicStroke(1)); }