From 8169e3a6ba894ae88d994da7cbdd38616fab24a6 Mon Sep 17 00:00:00 2001 From: bancika Date: Sat, 10 Mar 2012 04:03:44 +0000 Subject: [PATCH] BJT symbol --- .../components/semiconductors/BJTSymbol.java | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java index 8fac5d47..95cabfc4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/semiconductors/BJTSymbol.java @@ -28,8 +28,8 @@ public class BJTSymbol extends AbstractTransistorSymbol { GeneralPath polyline = new GeneralPath(); - polyline.moveTo(x + pinSpacing / 2, y - pinSpacing * 3 / 2); - polyline.lineTo(x + pinSpacing / 2, y + pinSpacing * 3 / 2); + polyline.moveTo(x + pinSpacing / 2, y - pinSpacing); + polyline.lineTo(x + pinSpacing / 2, y + pinSpacing); body[0] = polyline; @@ -37,32 +37,31 @@ public class BJTSymbol extends AbstractTransistorSymbol { polyline.moveTo(x, y); polyline.lineTo(x + pinSpacing / 2, y); - polyline.moveTo(x + pinSpacing / 2, y - pinSpacing * 7 / 8); - polyline.lineTo(x + pinSpacing * 2, y - pinSpacing * 3 / 2); + polyline.moveTo(x + pinSpacing / 2, y - pinSpacing / 2); + polyline.lineTo(x + pinSpacing * 2, y - pinSpacing); polyline.lineTo(x + pinSpacing * 2, y - pinSpacing * 2); - polyline.moveTo(x + pinSpacing / 2, y + pinSpacing * 7 / 8); - polyline.lineTo(x + pinSpacing * 2, y + pinSpacing * 3 / 2); + polyline.moveTo(x + pinSpacing / 2, y + pinSpacing / 2); + polyline.lineTo(x + pinSpacing * 2, y + pinSpacing); polyline.lineTo(x + pinSpacing * 2, y + pinSpacing * 2); body[1] = polyline; Area arrow; double theta; if (polarity == BJTPolarity.NPN) { - theta = Math.atan(5.0 / 12); + theta = Math.atan(1.0 / 3); arrow = new Area(new Polygon(new int[] { x + pinSpacing, x + pinSpacing, - x + pinSpacing * 10 / 6 }, new int[] { - y - pinSpacing / 5 + pinSpacing * 7 / 8, - y + pinSpacing / 5 + pinSpacing * 7 / 8, y + pinSpacing * 7 / 8 }, 3)); + x + pinSpacing * 10 / 6 }, new int[] { y - pinSpacing / 5 + pinSpacing / 2, + y + pinSpacing / 5 + pinSpacing / 2, y + pinSpacing / 2 }, 3)); arrow.transform(AffineTransform.getRotateInstance(theta, x + pinSpacing / 2, y - + pinSpacing * 7 / 8)); + + pinSpacing / 2)); } else { - theta = -Math.atan(5.0 / 12); + theta = -Math.atan(1.0 / 3); arrow = new Area(new Polygon(new int[] { x + pinSpacing, x + pinSpacing * 10 / 6, - x + pinSpacing * 10 / 6 }, new int[] { y - pinSpacing * 7 / 8, - y - pinSpacing / 5 - pinSpacing * 7 / 8, - y + pinSpacing / 5 - pinSpacing * 7 / 8 }, 3)); + x + pinSpacing * 10 / 6 }, new int[] { y - pinSpacing / 2, + y - pinSpacing / 5 - pinSpacing / 2, y + pinSpacing / 5 - pinSpacing / 2 }, + 3)); arrow.transform(AffineTransform.getRotateInstance(theta, x + pinSpacing / 2, y - - pinSpacing * 7 / 8)); + - pinSpacing / 2)); } body[2] = arrow; }