From ac6aaf4e06bb6745f73156da90a6abe5704747c6 Mon Sep 17 00:00:00 2001 From: bancika Date: Sat, 29 Jan 2011 13:47:00 +0000 Subject: [PATCH] added LED --- .../DIYLC/config.xml | 8 +- .../DIYLC/library/main.jar | Bin 70346 -> 72292 bytes .../components/AbstractLeadedComponent.java | 32 +++--- .../src/org/diylc/presenter/Presenter.java | 2 +- .../diylc/presenter/ProjectFileManager.java | 20 ++-- .../DIYLC/update.xml | 4 + .../Library/lib/diylc.jar | Bin 329708 -> 329720 bytes .../components/connectivity/CopperTrace.java | 12 +- .../diylc/components/connectivity/Jumper.java | 12 +- .../passive/AxialFilmCapacitor.java | 8 +- .../passive/ElectrolyticRadial.java | 18 +-- .../passive/RadialCeramicDiskCapacitor.java | 6 +- .../passive/RadialFilmCapacitor.java | 10 +- .../diylc/components/passive/Resistor.java | 10 +- .../semiconductors/DiodePlastic.java | 12 +- .../diylc/components/semiconductors/LED.java | 104 ++++++++++++++++++ .../semiconductors/TransistorTO92.java | 4 +- 17 files changed, 186 insertions(+), 76 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml index 617573b7..1cfc6249 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/config.xml @@ -1,15 +1,15 @@ - metric - true + lastPath + C:\Documents and Settings\Branislav Stojkovic\Desktop zoom 1.0 - lastPath - C:\Documents and Settings\Branislav Stojkovic\workspace\DIYLC\templates + metric + true default.org.diylc.components.misc.Label:Color diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/DIYLC/library/main.jar index a54cc0a7de495922cdffda57fa6c3d27901950a1..2f48c85637f8879b5c8161004785682bf4acde0c 100644 GIT binary patch delta 18404 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%0D3FH^w{nTUR6KDLrlm?-V# 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 extends AbstractTransparentComp public static Size LEAD_THICKNESS = new Size(0.6d, SizeUnit.mm); public static Size DEFAULT_SIZE = new Size(1d, SizeUnit.in); + protected Size length; protected Size width; - protected Size height; protected Point[] points = new Point[] { new Point((int) (-DEFAULT_SIZE.convertToPixels() / 2), 0), new Point(DEFAULT_SIZE.convertToPixels() / 2, 0) }; @@ -48,8 +48,8 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp protected AbstractLeadedComponent() { super(); try { + this.length = getDefaultLength().clone(); this.width = getDefaultWidth().clone(); - this.height = getDefaultHeight().clone(); } catch (CloneNotSupportedException e) { // This should never happen because Size supports cloning. } catch (NullPointerException e) { @@ -145,16 +145,16 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp } /** - * @return default component width. + * @return default component length. */ - protected abstract Size getDefaultWidth(); + protected abstract Size getDefaultLength(); /** - * Returns default component height. + * Returns default component width. * * @return */ - protected abstract Size getDefaultHeight(); + protected abstract Size getDefaultWidth(); /** * @return shape that represents component body. Shape should not be @@ -220,7 +220,16 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp this.borderColor = borderColor; } - @EditableProperty(defaultable = true) + @EditableProperty(name = "Length", defaultable = true) + public Size getLength() { + return length; + } + + public void setLength(Size length) { + this.length = length; + } + + @EditableProperty(name = "Width", defaultable = true) public Size getWidth() { return width; } @@ -229,15 +238,6 @@ public abstract class AbstractLeadedComponent extends AbstractTransparentComp this.width = width; } - @EditableProperty(defaultable = true) - public Size getHeight() { - return height; - } - - public void setHeight(Size height) { - this.height = height; - } - @EditableProperty public Display getDisplay() { return display; diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java index 31b1c7ac..94c26e1c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/Presenter.java @@ -50,7 +50,7 @@ public class Presenter implements IPlugInPort { private static final Logger LOG = Logger.getLogger(Presenter.class); - public static final VersionNumber CURRENT_VERSION = new VersionNumber(3, 0, 4); + public static final VersionNumber CURRENT_VERSION = new VersionNumber(3, 0, 5); public static final String DEFAULTS_KEY_PREFIX = "default."; public static final String METRIC_KEY = "metric"; diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java index dd1ecbca..2fe56b43 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/presenter/ProjectFileManager.java @@ -260,8 +260,8 @@ public class ProjectFileManager { } catch (Exception e) { LOG.debug("Could not set value of " + nameAttr); } - resistor.setWidth(new Size(6d, SizeUnit.mm)); - resistor.setHeight(new Size(2d, SizeUnit.mm)); + resistor.setLength(new Size(6d, SizeUnit.mm)); + resistor.setWidth(new Size(2d, SizeUnit.mm)); resistor.setControlPoint(point1, 0); resistor.setControlPoint(point2, 1); component = resistor; @@ -274,8 +274,8 @@ public class ProjectFileManager { } catch (Exception e) { LOG.debug("Could not set value of " + nameAttr); } - capacitor.setWidth(new Size(6d, SizeUnit.mm)); - capacitor.setHeight(new Size(2d, SizeUnit.mm)); + capacitor.setLength(new Size(6d, SizeUnit.mm)); + capacitor.setWidth(new Size(2d, SizeUnit.mm)); capacitor.setControlPoint(point1, 0); capacitor.setControlPoint(point2, 1); component = capacitor; @@ -290,13 +290,13 @@ public class ProjectFileManager { } String sizeAttr = node.getAttributes().getNamedItem("Size").getNodeValue(); if (sizeAttr.equalsIgnoreCase("small")) { - capacitor.setWidth(new Size(3d, SizeUnit.mm)); + capacitor.setLength(new Size(3d, SizeUnit.mm)); } else if (sizeAttr.equalsIgnoreCase("medium")) { - capacitor.setWidth(new Size(5d, SizeUnit.mm)); + capacitor.setLength(new Size(5d, SizeUnit.mm)); } else if (sizeAttr.equalsIgnoreCase("large")) { - capacitor.setWidth(new Size(7d, SizeUnit.mm)); + capacitor.setLength(new Size(7d, SizeUnit.mm)); } else { - capacitor.setWidth(new Size(4d, SizeUnit.mm)); + capacitor.setLength(new Size(4d, SizeUnit.mm)); } capacitor.setControlPoint(point1, 0); capacitor.setControlPoint(point2, 1); @@ -310,8 +310,8 @@ public class ProjectFileManager { } catch (Exception e) { LOG.debug("Could not set value of " + nameAttr); } - capacitor.setWidth(new Size(6d, SizeUnit.mm)); - capacitor.setHeight(new Size(2d, SizeUnit.mm)); + capacitor.setLength(new Size(6d, SizeUnit.mm)); + capacitor.setWidth(new Size(2d, SizeUnit.mm)); capacitor.setControlPoint(point1, 0); capacitor.setControlPoint(point2, 1); component = capacitor; diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml index 7132c0a9..610cce5b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/update.xml @@ -102,6 +102,10 @@ NEW_FEATURE Added TO-220 transistor + + NEW_FEATURE + Added LED + http://code.google.com/p/diy-layout-creator/downloads/list diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar b/ diy-layout-creator --username bancika@gmail.com/Library/lib/diylc.jar index 1f1d96737440285c1654ae8d4fd8245c93dcf43f..21dbaea50737687ea4e3b6d3ffdc863289556e8d 100644 GIT binary patch delta 27721 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 R(2{ki0=8{;Dje07{ttoR85{rr delta 27676 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 diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java index dec9f8cb..fadfe010 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/CopperTrace.java @@ -88,14 +88,14 @@ public class CopperTrace extends AbstractLeadedComponent { @Deprecated @Override - public Size getWidth() { - return super.getWidth(); + public Size getLength() { + return super.getLength(); } @Deprecated @Override - public Size getHeight() { - return super.getHeight(); + public Size getWidth() { + return super.getWidth(); } @Deprecated @@ -115,12 +115,12 @@ public class CopperTrace extends AbstractLeadedComponent { } @Override - protected Size getDefaultHeight() { + protected Size getDefaultWidth() { return null; } @Override - protected Size getDefaultWidth() { + protected Size getDefaultLength() { return null; } } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Jumper.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Jumper.java index fb6b4296..13d9139f 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Jumper.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/connectivity/Jumper.java @@ -53,14 +53,14 @@ public class Jumper extends AbstractLeadedComponent { @Deprecated @Override - public Size getWidth() { - return super.getWidth(); + public Size getLength() { + return super.getLength(); } @Deprecated @Override - public Size getHeight() { - return super.getHeight(); + public Size getWidth() { + return super.getWidth(); } @Deprecated @@ -80,12 +80,12 @@ public class Jumper extends AbstractLeadedComponent { } @Override - protected Size getDefaultHeight() { + protected Size getDefaultWidth() { return null; } @Override - protected Size getDefaultWidth() { + protected Size getDefaultLength() { return null; } } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java index ce604209..e9854276 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/AxialFilmCapacitor.java @@ -53,18 +53,18 @@ public class AxialFilmCapacitor extends AbstractLeadedComponent { } @Override - protected Size getDefaultHeight() { + protected Size getDefaultWidth() { return DEFAULT_HEIGHT; } @Override - protected Size getDefaultWidth() { + protected Size getDefaultLength() { return DEFAULT_WIDTH; } @Override protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getWidth().convertToPixels(), - getClosestOdd(getHeight().convertToPixels())); + return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), + getClosestOdd(getWidth().convertToPixels())); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java index 6e66ec64..b63d2de4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/ElectrolyticRadial.java @@ -53,7 +53,7 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { @Override protected void decorateComponentBody(Graphics2D g2d) { - int totalDiameter = getClosestOdd(getWidth().convertToPixels()); + int totalDiameter = getClosestOdd(getLength().convertToPixels()); int coverDiameter = getClosestOdd(totalDiameter * 3 / 4); g2d.setColor(coverColor); int position = (totalDiameter - coverDiameter) / 2; @@ -66,26 +66,26 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { } @Override - protected Size getDefaultHeight() { + protected Size getDefaultWidth() { return null; } @Deprecated @Override - public Size getHeight() { - return super.getHeight(); + public Size getWidth() { + return super.getWidth(); } @Override - protected Size getDefaultWidth() { + protected Size getDefaultLength() { // We'll reuse width property to set the diameter. return DEFAULT_SIZE; } @EditableProperty(name = "Diameter") @Override - public Size getWidth() { - return super.getWidth(); + public Size getLength() { + return super.getLength(); } @EditableProperty(name = "Cover") @@ -99,7 +99,7 @@ public class ElectrolyticRadial extends AbstractLeadedComponent { @Override protected Shape getBodyShape() { - return new Ellipse2D.Double(0f, 0f, getClosestOdd(getWidth().convertToPixels()), - getClosestOdd(getWidth().convertToPixels())); + return new Ellipse2D.Double(0f, 0f, getClosestOdd(getLength().convertToPixels()), + getClosestOdd(getLength().convertToPixels())); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java index 898a4ab4..a08da93c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/RadialCeramicDiskCapacitor.java @@ -53,18 +53,18 @@ public class RadialCeramicDiskCapacitor extends AbstractLeadedComponent { } @Override - protected Size getDefaultHeight() { + protected Size getDefaultWidth() { return DEFAULT_HEIGHT; } @Override - protected Size getDefaultWidth() { + protected Size getDefaultLength() { return DEFAULT_WIDTH; } @Override protected Shape getBodyShape() { - double radius = getHeight().convertToPixels() * 0.7; - return new RoundRectangle2D.Double(0f, 0f, getWidth().convertToPixels(), - getClosestOdd(getHeight().convertToPixels()), radius, radius); + double radius = getWidth().convertToPixels() * 0.7; + return new RoundRectangle2D.Double(0f, 0f, getLength().convertToPixels(), + getClosestOdd(getWidth().convertToPixels()), radius, radius); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java index ec25540e..22043b89 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/passive/Resistor.java @@ -56,12 +56,12 @@ public class Resistor extends AbstractLeadedComponent { } @Override - protected Size getDefaultHeight() { + protected Size getDefaultWidth() { return DEFAULT_HEIGHT; } @Override - protected Size getDefaultWidth() { + protected Size getDefaultLength() { return DEFAULT_WIDTH; } @@ -76,8 +76,8 @@ public class Resistor extends AbstractLeadedComponent { @Override protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getWidth().convertToPixels(), - getClosestOdd(getHeight().convertToPixels())); + return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), + getClosestOdd(getWidth().convertToPixels())); } @Override @@ -86,7 +86,7 @@ public class Resistor extends AbstractLeadedComponent { if (colorCode == ResistorColorCode.NONE) { return; } - int height = getClosestOdd(getHeight().convertToPixels()); + int height = getClosestOdd(getWidth().convertToPixels()); Color[] bands = value.getColorCode(colorCode); int x = 4; g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(2)); diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java index 493cb3c5..16a74b5a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/DiodePlastic.java @@ -59,27 +59,27 @@ public class DiodePlastic extends AbstractLeadedComponent { } @Override - protected Size getDefaultHeight() { + protected Size getDefaultWidth() { return DEFAULT_HEIGHT; } @Override - protected Size getDefaultWidth() { + protected Size getDefaultLength() { return DEFAULT_WIDTH; } @Override protected Shape getBodyShape() { - return new Rectangle2D.Double(0f, 0f, getWidth().convertToPixels(), - getClosestOdd(getHeight().convertToPixels())); + return new Rectangle2D.Double(0f, 0f, getLength().convertToPixels(), + getClosestOdd(getWidth().convertToPixels())); } @Override protected void decorateComponentBody(Graphics2D g2d) { g2d.setColor(markerColor); - int width = getWidth().convertToPixels(); + int width = getLength().convertToPixels(); int markerWidth = MARKER_WIDTH.convertToPixels(); - g2d.fillRect(width - markerWidth, 0, markerWidth, getClosestOdd(getHeight() + g2d.fillRect(width - markerWidth, 0, markerWidth, getClosestOdd(getWidth() .convertToPixels())); } diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java new file mode 100644 index 00000000..144472e8 --- /dev/null +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/LED.java @@ -0,0 +1,104 @@ +package org.diylc.components.semiconductors; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.Shape; +import java.awt.geom.Area; +import java.awt.geom.Ellipse2D; +import java.awt.geom.Rectangle2D; + +import org.diylc.common.ObjectCache; +import org.diylc.components.AbstractLeadedComponent; +import org.diylc.core.CreationMethod; +import org.diylc.core.IDIYComponent; +import org.diylc.core.annotations.ComponentDescriptor; +import org.diylc.core.annotations.EditableProperty; +import org.diylc.core.measures.Size; +import org.diylc.core.measures.SizeUnit; + +@ComponentDescriptor(name = "LED", author = "Branislav Stojkovic", category = "Semiconductors", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "D", description = "Light Emitting Diode", zOrder = IDIYComponent.COMPONENT) +public class LED extends AbstractLeadedComponent { + + private static final long serialVersionUID = 1L; + + public static Size DEFAULT_SIZE = new Size(5d, SizeUnit.mm); + public static Color BODY_COLOR = Color.decode("#5DFC0A"); + public static Color BORDER_COLOR = BODY_COLOR.darker(); + + private String value = ""; + + public LED() { + super(); + this.bodyColor = BODY_COLOR; + this.borderColor = BORDER_COLOR; + } + + @EditableProperty + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public void drawIcon(Graphics2D g2d, int width, int height) { + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1)); + g2d.rotate(-Math.PI / 4, width / 2, height / 2); + g2d.setColor(LEAD_COLOR); + g2d.drawLine(0, height / 2, width, height / 2); + + int margin = 4 * width / 32; + Area area = new Area(new Ellipse2D.Double(margin, margin, width - 2 * margin, width - 2 + * margin)); + area.intersect(new Area(new Rectangle2D.Double(margin, margin, width - 5 * margin / 2, + width - 2 * margin))); + g2d.setColor(BODY_COLOR); + g2d.fill(area); + g2d.setColor(BORDER_COLOR); + g2d.draw(area); + g2d + .drawOval(margin * 2 - 1, margin * 2 - 1, width - 4 * margin + 2, width - 4 + * margin + 2); + } + + @Override + protected Size getDefaultWidth() { + return DEFAULT_SIZE; + } + + @Override + protected Size getDefaultLength() { + return DEFAULT_SIZE; + } + + @Override + protected Shape getBodyShape() { + int size = getClosestOdd((int) (getLength().convertToPixels() * 1.2)); + Area area = new Area(new Ellipse2D.Double(0, 0, size, size)); + area.intersect(new Area(new Rectangle2D.Double(0, 0, getLength().convertToPixels() * 1.15, + size))); + return area; + } + + @Override + protected void decorateComponentBody(Graphics2D g2d) { + int size = getClosestOdd((int) (getLength().convertToPixels() * 1.2)); + int innerSize = getClosestOdd(getLength().convertToPixels()); + int x = (size - innerSize) / 2; + Shape s = new Ellipse2D.Double(x, x, innerSize, innerSize); + g2d.setColor(getBorderColor()); + g2d.draw(s); + } + + @EditableProperty(name = "Size") + @Override + public Size getLength() { + return super.getLength(); + } + + @Override + public Size getWidth() { + return super.getWidth(); + } +} diff --git a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java index 303a0200..4ed41b56 100644 --- a/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java +++ b/ diy-layout-creator --username bancika@gmail.com/Library/src/org/diylc/components/semiconductors/TransistorTO92.java @@ -207,7 +207,9 @@ public class TransistorTO92 extends AbstractTransparentComponent { int margin = 3 * width / 32; Area area = new Area(new Ellipse2D.Double(margin / 2, margin, width - 2 * margin, width - 2 * margin)); - area.subtract(new Area(new Rectangle2D.Double(0, 0, 2 * margin, height))); + // area.subtract(new Area(new Rectangle2D.Double(0, 0, 2 * margin, + // height))); + area.intersect(new Area(new Rectangle2D.Double(2 * margin, 0, width, height))); g2d.setColor(BODY_COLOR); g2d.fill(area); g2d.setColor(BORDER_COLOR);