Capacitor.java


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