import java.awt.*; import java.applet.*; public class Fourier extends Applet { Scrollbar s1,s2,s3,s4,s5,s6,s7,s8; Label l1,l2,l3,l4,l5,l6,l7,l8; Panel p1; double dx,x,y; double A[]=new double[9]; String whatsis; public void init(){ setLayout (new BorderLayout()); p1=new Panel(); s1=new Scrollbar(Scrollbar.HORIZONTAL,40,1,0,101); s2=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); s3=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); s4=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); s5=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); s6=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); s7=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); s8=new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,101); whatsis="Frequency"; l1=new Label(whatsis +" 1 "); l2=new Label(whatsis +" 2 "); l3=new Label(whatsis +" 3 "); l4=new Label(whatsis +" 4 "); l5=new Label(whatsis +" 5 "); l6=new Label(whatsis +" 6 "); l7=new Label(whatsis +" 7 "); l8=new Label(whatsis +" 8 "); p1.setLayout(new GridLayout(8,2,10,10)); p1.add(l1); p1.add(l5); p1.add(s1); p1.add(s5); p1.add(l2); p1.add(l6); p1.add(s2); p1.add(s6); p1.add(l3); p1.add(l7); p1.add(s3); p1.add(s7); p1.add(l4); p1.add(l8); p1.add(s4); p1.add(s8); add("North",p1); A[1]=40.0; A[2]=0.0; A[3]=0.0; A[4]=0.0; A[5]=0.0; A[6]=0.0; A[7]=0.0; A[8]=0.0; A[0]=0.0; } public boolean handleEvent(Event e){ if(e.target instanceof Scrollbar){ int value=((Scrollbar)e.target).getValue(); if(e.target==s1){ A[1]=((double)value)/5.0;l1.setText(whatsis +" 1 "+ Integer.toString(value));} else if(e.target==s2){ A[2]=((double)value)/5.0;l2.setText(whatsis +" 2 "+ Integer.toString(value));} else if(e.target==s3){ A[3]=((double)value)/5.0;l3.setText(whatsis +" 3 "+ Integer.toString(value));} else if(e.target==s4){ A[4]=((double)value)/5.0;l4.setText(whatsis +" 4 "+ Integer.toString(value));} else if(e.target==s5){ A[5]=((double)value)/5.0;l5.setText(whatsis +" 5 "+ Integer.toString(value));} else if(e.target==s6){ A[6]=((double)value)/5.0;l6.setText(whatsis +" 6 "+ Integer.toString(value));} else if(e.target==s7){ A[7]=((double)value)/5.0;l7.setText(whatsis +" 7 "+ Integer.toString(value));} else if(e.target==s8){ A[8]=((double)value)/5.0;l8.setText(whatsis +" 8 "+ Integer.toString(value));} repaint();} return true;} public void paint(Graphics g){ g.setColor(Color.red); g.drawRect(30,250,510,300); g.setColor(Color.black); g.drawLine(40,400,520,400); g.drawLine(40,260,40,540); for(int n=0;n<=1256;n++){ x=(double)n/200.0; y=0.0; for(int m=1;m<=8;m++) y=y+2.0*A[m]*Math.sin(((double)m)*x); g.setColor(Color.blue); g.fillOval(40+(int)(75.0*x),400-(int)y,2,2);} } }