private void drawArc(Graphics2D g, Rectangle trackRectangle, Track track, double x1, double x2) { double pixelStart = Math.min(x1, x2); double pixelEnd = Math.max(x1, x2); if (thickness > 1) g.setStroke(new BasicStroke(thickness)); int w = (int) (pixelEnd - pixelStart); if (w < 3) { w = 3; pixelStart--; } double a = w / 2; double r = a / sinTheta; double b = cosTheta * r; //double c = r - b; // sagittus //double d = r - a; // x delta to corner of bounding box double x = pixelStart + a; final int trackBaseLine = trackRectangle.y + trackRectangle.height; double y = direction == UP ? trackBaseLine + b : trackRectangle.y - b; double angleSt = direction == UP ? 90 - Math.toDegrees(theta) : 270 - Math.toDegrees(theta); double ext = Math.toDegrees(2 * theta); Arc2D.Double arcPath = new Arc2D.Double(); arcPath.setArcByCenter(x, y, r, angleSt, ext, Arc2D.OPEN); g.draw(arcPath); }
@Override protected void paintChildren(Graphics g) { super.paintChildren(g); if(null != planetIcon) { Graphics2D gfx = (Graphics2D) g; final int width = getWidth(); final int offset = 6; gfx.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Arc2D.Double arc = new Arc2D.Double(); gfx.setPaint(Color.BLACK); arc.setArcByCenter(width - 32 - offset, 32 + offset, 35, 0, 360, Arc2D.OPEN); gfx.fill(arc); gfx.setPaint(Color.WHITE); arc.setArcByCenter(width - 32 - offset, 32 + offset, 34, 0, 360, Arc2D.OPEN); gfx.fill(arc); gfx.drawImage(planetIcon, width - 64 - offset, offset, 64, 64, null); } }
final double radius = Math.sqrt(radiusX * radiusY); if (north) { arc.setArcByCenter(centerRawX, centerRawY, radius, 0, 180, Arc2D.OPEN); } else if (south) { arc.setArcByCenter(centerRawX, centerRawY, radius, -180, 180, Arc2D.OPEN); } else if (west) { arc.setArcByCenter(centerRawX, centerRawY, radius, 90, -180, Arc2D.OPEN); } else if (east) { arc.setArcByCenter(centerRawX, centerRawY, radius, -90, -180, Arc2D.OPEN);
double jumpRadius = (z - x); g2.setPaint(Color.DARK_GRAY); arc.setArcByCenter(x, y, jumpRadius, 0, 360, Arc2D.OPEN); g2.fill(arc); if(optHPGNetwork.isSelected()) { g2.setPaint(darkCyan); g2.setStroke(dotted); arc.setArcByCenter(x, y, jumpRadius, 0, 360, Arc2D.OPEN); g2.draw(arc); arc.setArcByCenter(x, y, size * 1.8, 0, 360, Arc2D.OPEN); g2.fill(arc); g2.setPaint(Color.BLACK); arc.setArcByCenter(x, y, size * 1.6, 0, 360, Arc2D.OPEN); g2.fill(arc); g2.setPaint(Color.WHITE); arc.setArcByCenter(x, y, size * 1.4, 0, 360, Arc2D.OPEN); g2.fill(arc); g2.setPaint(Color.BLACK); arc.setArcByCenter(x, y, size * 1.2, 0, 360, Arc2D.OPEN); g2.fill(arc); if(i > 0) { if(hpgRating == EquipmentType.RATING_A) { g2.setPaint(Color.CYAN); arc.setArcByCenter(x, y, size * 1.6, 0, 360, Arc2D.OPEN); g2.setStroke(thick); g2.draw(arc);
tmpArc.setArcByCenter( b.getX(), b.getCenterY(), double endAngle = initialAngle+(i-1)*childAngle+childAngle/4; if (endAngle < startAngle) { tmpArc.setArcByCenter( b.getMaxX(), b.getCenterY(),
final Arc2D.Double arc2D = new Arc2D.Double(); arc2D.setArcByCenter(posTheta.getScreenX() - dx, posTheta.getScreenY() + dy, radius + lateralOffset * (arc.clockwise() ? 1 : -1), Math.toDegrees(angSt), Math.toDegrees(arc.arcAngle()), Arc2D.OPEN);