/** * Build a {@Shape} WindBarb * * @return */ Shape buildAbsentModule() { // Base barb Path2D path = new Path2D.Double(); int positionOnPath = 0; // draw wind barb line path.moveTo(0, positionOnPath); positionOnPath -= windBarbDefinition.vectorLength; path.lineTo(0, positionOnPath); path.moveTo( windBarbDefinition.shortBarbLength / 2.0f, positionOnPath - windBarbDefinition.shortBarbLength / 2.0f); path.lineTo( -windBarbDefinition.shortBarbLength / 2.0f, positionOnPath + windBarbDefinition.shortBarbLength / 2.0f); path.moveTo( -windBarbDefinition.shortBarbLength / 2.0f, positionOnPath - windBarbDefinition.shortBarbLength / 2.0f); path.lineTo( windBarbDefinition.shortBarbLength / 2.0f, positionOnPath + windBarbDefinition.shortBarbLength / 2.0f); // FLIP for geotools final Shape createTransformedShape = path.createTransformedShape(AffineTransform.getScaleInstance(1, -1)); return createTransformedShape; }
path.createTransformedShape(AffineTransform.getScaleInstance(1, -1)); return createTransformedShape;
Polygon shape = new Polygon(); shape.addPoint(...); .... Rectangle bounds = shape.getBounds(); AffineTransform transform = new AffineTransform(); transform.rotate(Math.toRadians(angle), bounds.width / 2, bounds.height / 2); Path2D path = (shape instanceof Path2D) ? (Path2D)shape : new GeneralPath(shape); Shape rotated = path.createTransformedShape( transform ); System.out.println(rotated.getBounds());
this.shape = ((Path2D)shape).createTransformedShape(AffineTransform.getScaleInstance(size, size)); } else if (shape instanceof Area) { this.shape = ((Area) shape).createTransformedArea(AffineTransform.getScaleInstance(size, size));
g.setColor(new Color(img.getRGB(i, j))); g.setComposite(comp.derive(img.getAlphaRaster().getSampleFloat(i, j, 0) / 255)); g.fill(pixel.createTransformedShape(AffineTransform.getTranslateInstance(i, j)));
g2d.fill(head.createTransformedShape(AffineTransform.getTranslateInstance(x, y)));
g2d.fill(left.createTransformedShape(at)); } else { g2d.draw(left.createTransformedShape(at)); g2d.fill(right.createTransformedShape(at)); } else { g2d.draw(right.createTransformedShape(at)); g2d.fill(up.createTransformedShape(at)); } else { g2d.draw(up.createTransformedShape(at)); g2d.fill(down.createTransformedShape(at)); } else { g2d.draw(down.createTransformedShape(at));
/** * Convert the given path string to a marker with given size. * @param svgPath SVG path string * @param sz size of the resulting marker, as the side length/diameter * @return marker */ public static final Marker pathToMarker(String svgPath, final float sz) { final Path2D path = SVGPath.shapeConverter().convert(new SVGPath(svgPath)); if (path == null) { } return (Point2D point, double orientation, float markerRadius) -> { double scale = markerRadius/(.5*sz); return path.createTransformedShape(new AffineTransformBuilder() .translate(point.getX()-markerRadius, point.getY()-markerRadius) .scale(scale, scale) .build()); }; }
Shape scaled = poly.createTransformedShape(id);
int x = (getWidth() - bounds.width) / 2; int y = (getHeight() - bounds.height) / 2; g2d.fill(starShape.createTransformedShape(AffineTransform.getTranslateInstance(x, y))); g2d.dispose();
path2D.lineTo(c.getX(), c.getY()); path2D.closePath(); Shape s = path2D.createTransformedShape(af); g2d.fill(s); g2d.draw(s); g2d.setStroke(new BasicStroke(2.0f)); g2d.setColor(Color.ORANGE); Shape s = path.createTransformedShape(af); if (fillPath) { g2d.fill(s); Shape s = path2D.createTransformedShape(af);
at.rotate(Math.toRadians(angle), x + (bounds.width / 2), y + (bounds.height / 2)); at.translate(x, y); return createTransformedShape(at);
sternFillPath.lineTo(side, y1); sternDrawPath.append(turretPath.createTransformedShape(AffineTransform .getQuadrantRotateInstance(2, side / 2, side / 2)), false);
path.transform(transform); } else { shape = path.createTransformedShape(transform);
path.transform(transform); } else { shape = path.createTransformedShape(transform);