Capacitor.java
// Capacitor.java import java.awt.*; import java.awt.geom.*; public class Capacitor { double value; Color color; double angle, phi; double xpos, ypos; Capacitor() { color = Color.RED; xpos = 0.0; ypos = 0.0; setAngle(0.0); } void setAngle(double angle) { this.angle = angle; phi = angle*Math.PI/180.0; } void setPosition(double x, double y) { xpos = x; ypos = y; } public String toString() { String out = "Capacitor " + xpos +", " + ypos + " angle " + angle; return out; } public void draw(Graphics g) { int i; double u; double scl = 0.1; Graphics2D g2 = (Graphics2D) g; Stroke saveStroke = g2.getStroke(); AffineTransform saveXform = g2.getTransform(); // use minus sign to switch to book/image coordinate system g2.translate(xpos,-ypos); g2.rotate(-phi); g2.scale(scl,scl); g2.setStroke(new BasicStroke(0.25f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND)); Paint savePaint = g2.getPaint(); g2.setPaint(color); GeneralPath p = new GeneralPath(); double [] xp = { 0.5, 0.7, 0.9 }; double [] yp = { 1.3, 1.4, 1.5 }; p.moveTo(-2.5,0.0); p.lineTo(-0.5,0.0); p.moveTo(-0.5,-1.5); p.lineTo(-0.5,1.5); p.moveTo(0.5,-1.0); p.lineTo(0.5, 1.0); p.curveTo(xp[0],yp[0],xp[1],yp[1],xp[2],yp[2]); p.moveTo(0.5,-1.0); p.curveTo(xp[0],-yp[0],xp[1],-yp[1],xp[2],-yp[2]); p.moveTo(0.5,0.0); p.lineTo(2.5,0.0); g2.draw(p); g2.setStroke(saveStroke); g2.setPaint(savePaint); g2.setTransform(saveXform); } }
Maintained by John Loomis, updated Mon Feb 27 15:03:24 2017