/* * (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); } }
public void drawImage(Image img, float alpha, double[] _xyzSW, double[] _xyzSE, double[] _xyzNW) { Composite cs = comp2D.getComposite(); comp2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); AffineTransform t = getAffineTransform(img.getWidth(canvas), img.getHeight(canvas), _xyzSW, _xyzSE, _xyzNW); if (t != null) { comp2D.drawImage(img, t, canvas); } comp2D.setComposite(cs); }
public void drawShadowedText(String label, float alpha, double... pC) { int[] sC = projection.screenProjection(pC); // Corner offset adjustment : Text Offset is used Here FontRenderContext frc = comp2D.getFontRenderContext(); Font font1 = comp2D.getFont(); int x = sC[0]; int y = sC[1]; double w = font1.getStringBounds(label, frc).getWidth(); double h = font1.getSize2D(); x -= (int) (w * text_Eastoffset); y += (int) (h * text_Northoffset); int wc = (int) (w * FastMath.cos(text_angle) + h * FastMath.sin(text_angle)); int hc = (int) (h * FastMath.cos(text_angle) + w * FastMath.sin(text_angle)); if (!comp2D.hitClip(x, y, wc, hc)) { return; } if (text_angle != 0) { comp2D.rotate(text_angle, x + w / 2, y - h / 2); } Composite cs = comp2D.getComposite(); Color c = comp2D.getColor(); String[] lines = label.split("\n"); for (int i = 0; i < lines.length; i++) { comp2D.setColor(Color.white); comp2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); comp2D.fillRect(x, y - (int) h, (int) w, (int) h); comp2D.setComposite(cs); comp2D.setColor(c); comp2D.drawString(lines[i], x, y); y += h; } if (text_angle != 0) { comp2D.rotate(-text_angle, x + w / 2, y - h / 2); } }