/* * (non-Javadoc) * * @see org.math.plot.render.AbstractDrawer#fillPloygon(double[][]) */ public void fillPolygon(float alpha, double[]... pC) { int[][] c = new int[pC.length][2]; for (int i = 0; i < pC.length; i++) { c[i] = projection.screenProjection(pC[i]); } int minx = c[0][0], miny = c[0][1], maxx = c[0][0] + 1, maxy = c[0][1] + 1; int[] x = new int[c.length]; for (int i = 0; i < c.length; i++) { x[i] = c[i][0]; minx = FastMath.min(minx, x[i]); maxx = FastMath.max(maxx, x[i]); } int[] y = new int[c.length]; for (int i = 0; i < c.length; i++) { y[i] = c[i][1]; miny = FastMath.min(miny, y[i]); maxy = FastMath.max(maxy, y[i]); } if (comp2D.hitClip(minx, miny, maxx - minx, maxy - miny)) { Composite cs = comp2D.getComposite(); comp2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); comp2D.fillPolygon(x, y, c.length); comp2D.setComposite(cs); } }
/* * (non-Javadoc) * * @see org.math.plot.render.AbstractDrawer#drawPloygon(double[][]) */ public void drawPolygon(double[]... pC) { int[][] c = new int[pC.length][2]; for (int i = 0; i < pC.length; i++) { c[i] = projection.screenProjection(pC[i]); } int minx = c[0][0], miny = c[0][1], maxx = c[0][0] + 1, maxy = c[0][1] + 1; int[] x = new int[c.length]; for (int i = 0; i < c.length; i++) { x[i] = c[i][0]; minx = FastMath.min(minx, x[i]); maxx = FastMath.max(maxx, x[i]); } int[] y = new int[c.length]; for (int i = 0; i < c.length; i++) { y[i] = c[i][1]; miny = FastMath.min(miny, y[i]); maxy = FastMath.max(maxy, y[i]); } if (comp2D.hitClip(minx, miny, maxx - minx, maxy - miny)) { comp2D.drawPolygon(x, y, c.length); } }
private void drawLine(int[]... c) { int minx = c[0][0], miny = c[0][1], maxx = c[0][0] + 1, maxy = c[0][1] + 1; int[] x = new int[c.length]; for (int i = 0; i < c.length; i++) { x[i] = c[i][0]; minx = FastMath.min(minx, x[i]); maxx = FastMath.max(maxx, x[i]); } int[] y = new int[c.length]; for (int i = 0; i < c.length; i++) { y[i] = c[i][1]; miny = FastMath.min(miny, y[i]); maxy = FastMath.max(maxy, y[i]); } if (comp2D.hitClip(minx, miny, maxx - minx, maxy - miny)) { Stroke s = null; switch (line_type) { case CONTINOUS_LINE: s = new BasicStroke(line_width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND); break; case DOTTED_LINE: s = new BasicStroke( line_width, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 1f, new float[] {2f}, 0f); break; } comp2D.setStroke(s); comp2D.drawPolyline(x, y, c.length); } }