flip rca pins

This commit is contained in:
Branislav Stojkovic
2019-02-08 17:25:40 +01:00
parent c7bc8360ba
commit f7e5421f18
3 changed files with 19 additions and 18 deletions
@@ -117,10 +117,11 @@ public class RCAJack extends AbstractMultiPartComponent<String> {
drawingObserver.startTrackingContinuityArea(true);
g2d.fill(body[1]);
g2d.fill(body[2]);
g2d.fill(body[2]);
drawingObserver.stopTrackingContinuityArea();
if (body[3] != null)
g2d.fill(body[3]);
drawingObserver.stopTrackingContinuityArea();
g2d.fill(body[3]);
g2d.setComposite(oldComposite);
@@ -144,11 +145,11 @@ public class RCAJack extends AbstractMultiPartComponent<String> {
public Area[] getBody() {
if (body == null) {
body = new Area[4];
int x0 = controlPoints[0].x;
int y0 = controlPoints[0].y;
int x1 = controlPoints[1].x;
int y1 = controlPoints[1].y;
int x0 = controlPoints[0].x;
int y0 = controlPoints[0].y;
int x1 = controlPoints[1].x;
int y1 = controlPoints[1].y;
int bodyDiameter = getClosestOdd(BODY_DIAMETER.convertToPixels());
int waferDiameter = getClosestOdd(WAFER_DIAMETER.convertToPixels());
int springWidth = (int) SPRING_WIDTH.convertToPixels();
@@ -156,33 +157,33 @@ public class RCAJack extends AbstractMultiPartComponent<String> {
double hexDiameter = HEX_DIAMETER.convertToPixels();
Area wafer =
new Area(new Ellipse2D.Double(x1 - waferDiameter / 2, y1 - waferDiameter / 2, waferDiameter,
new Area(new Ellipse2D.Double(x0 - waferDiameter / 2, y0 - waferDiameter / 2, waferDiameter,
waferDiameter));
wafer.subtract(new Area(new Ellipse2D.Double(x1 - holeDiameter / 2, y1 - holeDiameter / 2, holeDiameter,
wafer.subtract(new Area(new Ellipse2D.Double(x0 - holeDiameter / 2, y0 - holeDiameter / 2, holeDiameter,
holeDiameter)));
body[0] = wafer;
Area tip = new TwoCircleTangent(controlPoints[1], controlPoints[0], bodyDiameter / 2, springWidth / 2);
Area tip = new TwoCircleTangent(controlPoints[0], controlPoints[1], bodyDiameter / 2, springWidth / 2);
tip.subtract(new Area(
new Ellipse2D.Double(x0 - holeDiameter / 2, y0 - holeDiameter / 2, holeDiameter, holeDiameter)));
tip.subtract(new Area(new Ellipse2D.Double(x1 - waferDiameter / 2, y1 - waferDiameter / 2, waferDiameter,
new Ellipse2D.Double(x1 - holeDiameter / 2, y1 - holeDiameter / 2, holeDiameter, holeDiameter)));
tip.subtract(new Area(new Ellipse2D.Double(x0 - waferDiameter / 2, y0 - waferDiameter / 2, waferDiameter,
waferDiameter)));
body[1] = tip;
Area sleeve =
new Area(new Ellipse2D.Double(x1 - springWidth / 2, y1 - springWidth / 2,
new Area(new Ellipse2D.Double(x0 - springWidth / 2, y0 - springWidth / 2,
springWidth, springWidth));
sleeve.subtract(new Area(new Ellipse2D.Double(x1 - holeDiameter / 2, y1 - holeDiameter / 2, holeDiameter,
sleeve.subtract(new Area(new Ellipse2D.Double(x0 - holeDiameter / 2, y0 - holeDiameter / 2, holeDiameter,
holeDiameter)));
body[2] = sleeve;
Path2D hex = new Path2D.Double();
for (int i = 0; i < 6; i++) {
double x = x1 + Math.cos(Math.PI / 3 * i) * hexDiameter / 2;
double y = y1 + Math.sin(Math.PI / 3 * i) * hexDiameter / 2;
double x = x0 + Math.cos(Math.PI / 3 * i) * hexDiameter / 2;
double y = y0 + Math.sin(Math.PI / 3 * i) * hexDiameter / 2;
if (i == 0)
hex.moveTo(x, y);
else
@@ -190,7 +191,7 @@ public class RCAJack extends AbstractMultiPartComponent<String> {
}
hex.closePath();
Area hexArea = new Area(hex);
hexArea.subtract(new Area(new Ellipse2D.Double(x1 - waferDiameter / 2, y1 - waferDiameter / 2, waferDiameter,
hexArea.subtract(new Area(new Ellipse2D.Double(x0 - waferDiameter / 2, y0 - waferDiameter / 2, waferDiameter,
waferDiameter)));
body[3] = hexArea;
}