/* * gb2.java - revised 27 Feb 08 - width 409, height 337 * @author jackord@kw.igs.net * equipotentials for -Q, 2Q, -Q charge array */ import java.applet.Applet; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class gb2 extends Applet implements ActionListener { int kk=0; // Declarations int [] p=new int[4]; double [] q=new double[4]; int [] m=new int[4]; String bs = "Plot"; Button b = new Button(bs); Color col[]={ Color.blue, Color.cyan, Color.red, Color.yellow, Color.magenta, Color.green }; public void init() { // Layout setLayout(new FlowLayout(FlowLayout.LEFT)); add(b); b.addActionListener(this); setBackground(new Color(211, 211, 211)); } public void pin(Graphics g) { // Initialize p[1]=121; q[1]=216; p[2]=204; q[2]=216-166*Math.sqrt(3)/2; p[3]=287; q[3]=216; m[1]=-1; m[2]=2; m[3]=-1; g.setFont(new Font("Arial", Font.PLAIN, 12)); g.setColor(Color.gray); for (int i=1; i<=3; i=i+1) { g.fillArc(p[i]-12, (int)(q[i])-12, 25, 25, 0, 360); } g.setColor(Color.black); g.drawRect(0, 0, 408, 336); for (int i=1; i<=3; i=i+1) { g.drawArc(p[i]-12, (int)(q[i])-12, 24, 24, 0, 360); } g.drawString("2Q", p[2]-7, (int)(q[2])+5); g.drawString("-Q", p[1]-7, (int)(q[1])+5); g.drawString("-Q", p[3]-7, (int)(q[3])+5); } public void paint(Graphics g) { // Main Program int plt; double r2, u; pin(g); if (kk>0) { for (int k=1; k<=335; k=k+1) { for (int j=1; j<=407; j=j+1) { u=0; plt=1; for (int i=1; i<=3; i=i+1) { r2=(p[i]-j)*(p[i]-j)+(q[i]-k)*(q[i]-k); if (r2>144) { u=u+m[i]/Math.sqrt(r2); } else { plt=0; } } if (plt>0) { g.setColor(col[(int)(288*(.1+u))%6]); g.drawLine(j, k, j, k); } } } g.setColor(Color.black); for (int i=1; i<=3; i=i+1) { g.drawArc(p[i]-12, (int)(q[i])-12, 24, 24, 0, 360); } kk=0; } } public void actionPerformed(ActionEvent e) { // Button String tst; tst=e.getActionCommand(); if (bs.equals(tst)) { kk=1; } repaint(); } }