Java Code Examples for java.awt.Graphics2D#drawArc()
The following examples show how to use
java.awt.Graphics2D#drawArc() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: GeoGebraLogoBox.java From lams with GNU General Public License v2.0 | 6 votes |
public void draw(Graphics2D g2, float x, float y) { AffineTransform oldAt = g2.getTransform(); Color oldC = g2.getColor(); Stroke oldS = g2.getStroke(); g2.translate(x + 0.25f * height / 2.15f, y - 1.75f / 2.15f * height); g2.setColor(gray); g2.setStroke(st); g2.scale(0.05f * height / 2.15f, 0.05f * height / 2.15f); g2.rotate(-26 * Math.PI / 180, 20.5, 17.5); g2.drawArc(0, 0, 43, 32, 0, 360); g2.rotate(26 * Math.PI / 180, 20.5, 17.5); g2.setStroke(oldS); drawCircle(g2, 16f, -5f); drawCircle(g2, -1f, 7f); drawCircle(g2, 5f, 28f); drawCircle(g2, 27f, 24f); drawCircle(g2, 36f, 3f); g2.setStroke(oldS); g2.setTransform(oldAt); g2.setColor(oldC); }
Example 2
Source File: RPEntity2DView.java From stendhal with GNU General Public License v2.0 | 6 votes |
/** * @param g2d The graphic context * @param x The x-position of the upperleft of the oval * @param y The y-position of the upperleft of the oval * @param width The widht of the oval * @param height The height of the oval * @param color The base color of the oval, shadow still needs to be applied * @param reversed Whether the bottom part, or the upper part should be dark (true is upper part) * @param light */ private void drawShadedOval(final Graphics2D g2d, final int x, final int y, final int width, final int height, final Color color, final boolean reversed, final boolean light) { // Calculate how much darker the ring must be made (depends on the boolean 'light') float multi1; float multi2; if (light) { multi1 = reversed ? 1f : 0.8f; multi2 = reversed ? 0.8f : 1f; } else { multi1 = reversed ? 0.24f : 0.39f; multi2 = reversed ? 0.39f : 0.24f; } // Darken the colors by the given multiplier Color color1 = new Color((int) (color.getRed() * multi1), (int) (color.getGreen() * multi1), (int) (color.getBlue() * multi1)); Color color2 = new Color((int) (color.getRed() * multi2), (int) (color.getGreen() * multi2), (int) (color.getBlue() * multi2)); // Draw with two arcs a oval g2d.setColor(color1); g2d.drawArc(x, y, width, height, 0, 180); g2d.setColor(color2); g2d.drawArc(x, y, width, height, 180, 180); }
Example 3
Source File: IntermediateImages.java From filthy-rich-clients with BSD 3-Clause "New" or "Revised" License | 6 votes |
private void renderSmiley(Graphics g, int x, int y) { Graphics2D g2d = (Graphics2D)g.create(); // Yellow face g2d.setColor(Color.yellow); g2d.fillOval(x, y, SMILEY_SIZE, SMILEY_SIZE); // Black eyes g2d.setColor(Color.black); g2d.fillOval(x + 30, y + 30, 8, 8); g2d.fillOval(x + 62, y + 30, 8, 8); // Black outline g2d.drawOval(x, y, SMILEY_SIZE, SMILEY_SIZE); // Black smile g2d.setStroke(new BasicStroke(3.0f)); g2d.drawArc(x + 20, y + 20, 60, 60, 190, 160); g2d.dispose(); }
Example 4
Source File: CircleProgressBar.java From xdm with GNU General Public License v2.0 | 5 votes |
@Override public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; if (g2 == null) { return; } g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // g2.setRenderingHint(RenderingHints.KEY_RENDERING, // RenderingHints.VALUE_RENDER_QUALITY); int sweep_angle = (int)(((float)value * 360) / 100); g2.setColor(Color.GRAY); g2.setStroke(stroke); g2.drawArc(padding, padding, getWidth() - 2 * padding, getHeight() - 2 * padding, getScaledInt(90), -360); // g2.drawArc(2, 2, getWidth() - 12, getHeight() - 12, 90, -360); if (value > 0) { g2.setColor(foreColor); // g2.drawArc(2, 2, getWidth() - 12, getHeight() - 12, 90, // -sweep_angle); g2.drawArc(padding, padding, getWidth() - 2 * padding, getHeight() - 2 * padding, getScaledInt(90), -sweep_angle); } g2.setFont(FontResource.getItemFont()); FontMetrics fm = g2.getFontMetrics(); String str = value + "%"; int w = (int) fm.getStringBounds(str, g2).getWidth();// fm.stringWidth(str); LineMetrics lm = fm.getLineMetrics(str, g2); int h = (int) (lm.getAscent() + lm.getDescent()); g2.drawString(str, (getWidth() - w) / 2, ((getHeight() + h) / 2) - lm.getDescent()); }
Example 5
Source File: GeoGebraLogoBox.java From lams with GNU General Public License v2.0 | 5 votes |
private static void drawCircle(Graphics2D g2, float x, float y) { g2.setColor(blue); g2.translate(x, y); g2.fillArc(0, 0, 8, 8, 0, 360); g2.setColor(Color.BLACK); g2.drawArc(0, 0, 8, 8, 0, 360); g2.translate(-x, -y); }
Example 6
Source File: AbstractTtlGate.java From Logisim with GNU General Public License v3.0 | 5 votes |
protected void paintBase(InstancePainter painter, boolean drawname, boolean ghost) { Direction dir = painter.getAttributeValue(StdAttr.FACING); Graphics2D g = (Graphics2D) painter.getGraphics(); Bounds bds = painter.getBounds(); int x = bds.getX(); int y = bds.getY(); int xp = x, yp = y; int width = bds.getWidth(); int height = bds.getHeight(); for (byte i = 0; i < this.pinnumber; i++) { if (i < this.pinnumber / 2) { if (dir == Direction.WEST || dir == Direction.EAST) xp = i * 20 + (10 - pinwidth / 2) + x; else yp = i * 20 + (10 - pinwidth / 2) + y; } else { if (dir == Direction.WEST || dir == Direction.EAST) { xp = (i - this.pinnumber / 2) * 20 + (10 - pinwidth / 2) + x; yp = height + y - pinheight; } else { yp = (i - this.pinnumber / 2) * 20 + (10 - pinwidth / 2) + y; xp = width + x - pinheight; } } if (dir == Direction.WEST || dir == Direction.EAST) { // fill the background of white if selected from preferences if (!ghost && AppPreferences.FILL_COMPONENT_BACKGROUND.getBoolean()) { g.setColor(Color.WHITE); g.fillRect(xp, yp, pinwidth, pinheight); g.setColor(Color.BLACK); } g.drawRect(xp, yp, pinwidth, pinheight); } else { // fill the background of white if selected from preferences if (!ghost && AppPreferences.FILL_COMPONENT_BACKGROUND.getBoolean()) { g.setColor(Color.WHITE); g.fillRect(xp, yp, pinheight, pinwidth); g.setColor(Color.BLACK); } g.drawRect(xp, yp, pinheight, pinwidth); } } if (dir == Direction.SOUTH) { // fill the background of white if selected from preferences if (!ghost && AppPreferences.FILL_COMPONENT_BACKGROUND.getBoolean()) { g.setColor(Color.WHITE); g.fillRoundRect(x + pinheight, y, bds.getWidth() - pinheight * 2, bds.getHeight(), 10, 10); g.setColor(Color.BLACK); } g.drawRoundRect(x + pinheight, y, bds.getWidth() - pinheight * 2, bds.getHeight(), 10, 10); g.drawArc(x + width / 2 - 7, y - 7, 14, 14, 180, 180); } else if (dir == Direction.WEST) { // fill the background of white if selected from preferences if (!ghost && AppPreferences.FILL_COMPONENT_BACKGROUND.getBoolean()) { g.setColor(Color.WHITE); g.fillRoundRect(x, y + pinheight, bds.getWidth(), bds.getHeight() - pinheight * 2, 10, 10); g.setColor(Color.BLACK); } g.drawRoundRect(x, y + pinheight, bds.getWidth(), bds.getHeight() - pinheight * 2, 10, 10); g.drawArc(x + width - 7, y + height / 2 - 7, 14, 14, 90, 180); } else if (dir == Direction.NORTH) { // fill the background of white if selected from preferences if (!ghost && AppPreferences.FILL_COMPONENT_BACKGROUND.getBoolean()) { g.setColor(Color.WHITE); g.fillRoundRect(x + pinheight, y, bds.getWidth() - pinheight * 2, bds.getHeight(), 10, 10); g.setColor(Color.BLACK); } g.drawRoundRect(x + pinheight, y, bds.getWidth() - pinheight * 2, bds.getHeight(), 10, 10); g.drawArc(x + width / 2 - 7, y + height - 7, 14, 14, 0, 180); } else {// east // fill the background of white if selected from preferences if (!ghost && AppPreferences.FILL_COMPONENT_BACKGROUND.getBoolean()) { g.setColor(Color.WHITE); g.fillRoundRect(x, y + pinheight, bds.getWidth(), bds.getHeight() - pinheight * 2, 10, 10); g.setColor(Color.BLACK); } g.drawRoundRect(x, y + pinheight, bds.getWidth(), bds.getHeight() - pinheight * 2, 10, 10); g.drawArc(x - 7, y + height / 2 - 7, 14, 14, 270, 180); } g.rotate(Math.toRadians(-dir.toDegrees()), x + width / 2, y + height / 2); if (drawname) { g.setFont(new Font(Font.DIALOG_INPUT, Font.BOLD, 14)); GraphicsUtil.drawCenteredText(g, this.name, x + bds.getWidth() / 2, y + bds.getHeight() / 2 - 4); } if (dir == Direction.WEST || dir == Direction.EAST) { xp = x; yp = y; } else { xp = x + (width - height) / 2; yp = y + (height - width) / 2; width = bds.getHeight(); height = bds.getWidth(); } g.setFont(new Font(Font.DIALOG_INPUT, Font.BOLD, 7)); GraphicsUtil.drawCenteredText(g, "Vcc", xp + 10, yp + pinheight + 4); GraphicsUtil.drawCenteredText(g, "GND", xp + width - 10, yp + height - pinheight - 7); }
Example 7
Source File: VectorImageTest.java From pumpernickel with MIT License | 5 votes |
/** * This tests clipping different Graphics2Ds, drawing arcs, a SrcOut * composite to clear pixels. */ public void testContext1() throws Exception { RenderTest t = new RenderTest() { @Override public void paint(Graphics2D g) { g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setStroke(new BasicStroke(15)); g.clipRect(20, 20, 160, 160); g.setColor(Color.cyan); g.fillRect(0, 0, 200, 200); Graphics2D g2 = (Graphics2D) g.create(40, 40, 100, 100); g2.setColor(Color.pink); g2.drawArc(20, 20, 120, 120, 0, 190); Graphics2D g3 = (Graphics2D) g.create(60, 0, 100, 100); g3.setComposite(AlphaComposite.SrcOut); g3.setColor(Color.magenta); g3.drawArc(10, 10, 120, 120, 180, 340); } }; t.test(); }
Example 8
Source File: ProgressAnimation.java From rapidminer-studio with GNU Affero General Public License v3.0 | 5 votes |
@Override public void draw(Graphics2D graphics) { Graphics2D g2 = (Graphics2D) graphics.create(); int currentProgress = progressProvider.getProgress(); if (currentProgress == 0) { indeterminateAnimation.draw(g2); } else { lastDrawnProgress = currentProgress; // draw arc g2.setColor(ANIMATION_COLOR); g2.setStroke(STROKE); // rendering hint that prevents arc from wobbling g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g2.drawArc(-CIRCLE_DIAMETER / 2, -CIRCLE_DIAMETER / 2, CIRCLE_DIAMETER, CIRCLE_DIAMETER, START_ANGLE, -FULL_ANGLE * currentProgress / 100); // print progress if not 100 if (currentProgress < 100) { g2.setFont(platformSpecificFont); final String text = "" + currentProgress; double textX = -textWidth / 2; if (currentProgress < 10) { textX = textX / 2; } g2.drawString(text, (int) textX, (int) textHeight / 2); } g2.dispose(); } }
Example 9
Source File: PurposefulChoiceDemo.java From semanticvectors with BSD 3-Clause "New" or "Revised" License | 5 votes |
@Override public void paintComponent(Graphics g) { super.paintComponent(g); this.removeAll(); this.updateUI(); g.setColor(Color.BLACK); g.drawLine(100, 500, 100, 100); g.drawLine(100, 500, 500, 500); Graphics2D g2d = (Graphics2D) g; g2d.setStroke(DASHED_STROKE); g2d.drawLine(500, 500, 100, 100); int radius = (int) (Math.sqrt(DogOnCurve.RADIUS_SQUARED) * 400); g2d.drawArc(100 - radius, 500 - radius, 2 * radius, 2 * radius, 0, 90); g.setFont(new Font("Serif", Font.BOLD, 36)); g.setColor(Color.ORANGE); if (foodAtX) { g.drawString("HUNT", 500, 500); } else { g.drawString("BEG", 100, 100); } g.setColor(Color.RED); g.drawString(Integer.toString(dogOnLine.foodWon), (int) (100 + 400 * dogOnLine.currentPointX), (int) (500 - 400 * dogOnLine.currentPointY)); g.setColor(Color.GREEN); g.drawString(Integer.toString(dogOnCurve.foodWon), (int) (100 + 400 * dogOnCurve.currentPointX), (int) (500 - 400 * dogOnCurve.currentPointY)); }
Example 10
Source File: RingChart.java From android-classyshark with Apache License 2.0 | 4 votes |
private void renderNode(int width, int height, int radius, int startAngle, int endAngle, ClassNode rootNode, Graphics2D g2d, int depth, Color[] pallete) { if (rootNode.getChildNodes().isEmpty()) { return; } int nodeStartAngle; int nodeEndAngle = startAngle; int angleSize = endAngle - startAngle; int r = (radius / maxDepth) * depth; int x = (width - r) / 2; int y = (height - r) / 2; int currentNode = 0; int currentColor = 0; List<ClassNode> nodes = new ArrayList<>(rootNode.getChildNodes().values()); Collections.sort(nodes, new Comparator<ClassNode>() { @Override public int compare(ClassNode o1, ClassNode o2) { return Integer.compare(o2.getMethodCount(), o1.getMethodCount()); } }); while (nodeEndAngle < endAngle) { ClassNode node = nodes.get(currentNode); nodeStartAngle = nodeEndAngle; String title = node.getKey(); Color color = pallete[currentColor]; nodeEndAngle = (int) ((double) node.getMethodCount() / rootNode.getMethodCount() * angleSize + nodeEndAngle); if (currentNode == nodes.size() - 1) { nodeEndAngle = endAngle; } else if (currentColor == pallete.length - 1 || 360 - nodeEndAngle < 5) { currentColor = pallete.length - 1; nodeEndAngle = endAngle; title = "Others"; color = OTHERS_COLOR; } if (selectedNode != null && node == selectedNode) { color = getHighlightColor(color); } if (color != OTHERS_COLOR) { colorClassNodeMap.put(color.getRGB(), node); } if (depth < maxDepth && currentColor != pallete.length - 1) { Color[] newpallete = L2_PALLETES[currentColor]; renderNode( width, height, radius, nodeStartAngle, nodeEndAngle, node, g2d, depth + 1, newpallete); } g2d.setColor(color); g2d.fillArc(x, y, r, r, nodeStartAngle, nodeEndAngle - nodeStartAngle); g2d.setColor(Color.BLACK); g2d.drawArc(x, y, r, r, nodeStartAngle, nodeEndAngle - nodeStartAngle); //Render Lines between angles AffineTransform saved = g2d.getTransform(); int cx = width / 2; int cy = height / 2; g2d.translate(cx, cy); double rads = Math.toRadians(nodeEndAngle); int py = (int)Math.round(Math.sin(rads) * (r / 2)) * -1; int px = (int)Math.round(Math.cos(rads) * (r / 2)); g2d.drawLine(0, 0, px, py); //Render text int r2 = (radius / maxDepth) * (depth - 1); r2 = r + (r2 - r)/2; rads = Math.toRadians(nodeStartAngle + (nodeEndAngle - nodeStartAngle) / 2); py = (int)Math.round(Math.sin(rads) * (r2 / 2))* -1; px = (int)Math.round(Math.cos(rads) * (r2 / 2)); g2d.drawString(title, px, py); g2d.setTransform(saved); currentNode++; currentColor++; } }
Example 11
Source File: ImageDrawArc.java From openbd-core with GNU General Public License v3.0 | 4 votes |
public cfData execute( cfSession _session, cfArgStructData argStruct ) throws cfmRunTimeException{ cfImageData im = getImage( _session, argStruct ); int x = getNamedIntParam(argStruct, "x", -1 ); int y = getNamedIntParam(argStruct, "y", -1 ); int w = getNamedIntParam(argStruct, "width", -1 ); int h = getNamedIntParam(argStruct, "height", -1 ); int sa = getNamedIntParam(argStruct, "startangle", Integer.MIN_VALUE ); int ar = getNamedIntParam(argStruct, "arcangle", Integer.MIN_VALUE ); boolean bFilled = getNamedBooleanParam(argStruct, "filled", false ); //Check boundaries BufferedImage bim = im.getImage(); if ( x < 0 || x > bim.getWidth() ) throwException(_session, "x (" + x + ") is outside the image" ); if ( y < 0 || y > bim.getHeight() ) throwException(_session, "y (" + y + ") is outside the image" ); if ( (x+w) < 0 || (x+w) > bim.getWidth() ) throwException(_session, "w (" + w + ") is outside the image" ); if ( (y+w) < 0 || (y+w) > bim.getHeight() ) throwException(_session, "w (" + w + ") is outside the image" ); if ( sa == Integer.MIN_VALUE ) throwException(_session, "startangle was not specified" ); if ( ar == Integer.MIN_VALUE ) throwException(_session, "arcangle was not specified" ); // Perform the operation Graphics2D g2 = im.createGraphics(); if ( bFilled ){ g2.fillArc( x, y, w, h, sa, ar ); }else{ g2.drawArc(x, y, w, h, sa, ar ); } im.dispose(g2); return cfBooleanData.TRUE; }
Example 12
Source File: DrawArcEvent.java From whyline with MIT License | 2 votes |
public void paint(Graphics2D g) { g.drawArc(getX(), getY(), getWidth(), getHeight(), getStartAngle(), getArcAngle()); }