/* * fourier.java * * Created on 29. Mai 2004, 17:16 */ /** * * @author nus */ import java.awt.*; import java.awt.event.*; import java.applet.*; public class fourier extends Applet implements ActionListener { Scrollbar a1; Scrollbar a2; Scrollbar a3; Scrollbar a4; Scrollbar a5; Scrollbar a6; Scrollbar a7; Scrollbar a8; Scrollbar a9; Scrollbar a10; Scrollbar a11; Scrollbar a12; Scrollbar p1; Scrollbar p2; Scrollbar p3; Scrollbar p4; Scrollbar p5; Scrollbar p6; Scrollbar p7; Scrollbar p8; Scrollbar p9; Scrollbar p10; Scrollbar p11; Scrollbar p12; Button form1; Button form2; Button form3; Button loeschen; Label va1; Label va2; Label va3; Label va4; Label va5; Label va6; Label va7; Label va8; Label va9; Label va10; Label va11; Label va12; Label vp1; Label vp2; Label vp3; Label vp4; Label vp5; Label vp6; Label vp7; Label vp8; Label vp9; Label vp10; Label vp11; Label vp12; String formel; public void init() { setLayout(new BorderLayout()); Panel paneln = new Panel(); form1 = new Button("Rechteck"); form2 = new Button("Dreieck"); form3 = new Button("Sägezahn"); loeschen = new Button("Alles löschen"); paneln.add(form1); form1.addActionListener(this); paneln.add(form2); form2.addActionListener(this); paneln.add(form3); form3.addActionListener(this); paneln.add(loeschen); loeschen.addActionListener(this); Panel panele = new Panel(); panele.setLayout(new GridLayout(6,12,10, 10)); Label la1 = new Label("1"); Label la2 = new Label("2"); Label la3 = new Label("3"); Label la4 = new Label("4"); Label la5 = new Label("5"); Label la6 = new Label("6"); Label la7 = new Label("7"); Label la8 = new Label("8"); Label la9 = new Label("9"); Label la10 = new Label("10"); Label la11 = new Label("11"); Label la12 = new Label("12"); Label lp1 = new Label("1"); Label lp2 = new Label("2"); Label lp3 = new Label("3"); Label lp4 = new Label("4"); Label lp5 = new Label("5"); Label lp6 = new Label("6"); Label lp7 = new Label("7"); Label lp8 = new Label("8"); Label lp9 = new Label("9"); Label lp10 = new Label("10"); Label lp11 = new Label("11"); Label lp12 = new Label("12"); a1 = new Scrollbar(Scrollbar.VERTICAL, 200, 1,0,200); a2 = new Scrollbar(Scrollbar.VERTICAL, 200,1, 0,200); a3 = new Scrollbar(Scrollbar.VERTICAL, 200, 1,0,200); a4 = new Scrollbar(Scrollbar.VERTICAL, 200,1, 0,200); a5 = new Scrollbar(Scrollbar.VERTICAL, 200, 1,0,200); a6 = new Scrollbar(Scrollbar.VERTICAL, 200,1, 0,200); a7 = new Scrollbar(Scrollbar.VERTICAL, 200, 1,0,200); a8 = new Scrollbar(Scrollbar.VERTICAL, 200,1, 0,200); a9 = new Scrollbar(Scrollbar.VERTICAL, 200, 1,0,200); a10 = new Scrollbar(Scrollbar.VERTICAL, 200,1, 0,200); a11 = new Scrollbar(Scrollbar.VERTICAL, 200, 1,0,200); a12 = new Scrollbar(Scrollbar.VERTICAL, 200,1, 0,200); p1 = new Scrollbar(Scrollbar.VERTICAL, 360, 1,0,360); p2 = new Scrollbar(Scrollbar.VERTICAL, 360,1, 0,360); p3 = new Scrollbar(Scrollbar.VERTICAL, 360, 1,0,360); p4 = new Scrollbar(Scrollbar.VERTICAL, 360,1, 0,360); p5 = new Scrollbar(Scrollbar.VERTICAL, 360, 1,0,360); p6 = new Scrollbar(Scrollbar.VERTICAL, 360,1, 0,360); p7 = new Scrollbar(Scrollbar.VERTICAL, 360, 1,0,360); p8 = new Scrollbar(Scrollbar.VERTICAL, 360,1, 0,360); p9 = new Scrollbar(Scrollbar.VERTICAL, 360, 1,0,360); p10 = new Scrollbar(Scrollbar.VERTICAL, 360,1, 0,360); p11 = new Scrollbar(Scrollbar.VERTICAL, 360, 1,0,360); p12 = new Scrollbar(Scrollbar.VERTICAL, 360,1, 0,360); va1 = new Label("0"); va2 = new Label("0"); va3 = new Label("0"); va4 = new Label("0"); va5 = new Label("0"); va6 = new Label("0"); va7 = new Label("0"); va8 = new Label("0"); va9 = new Label("0"); va10 = new Label("0"); va11 = new Label("0"); va12 = new Label("0"); vp1 = new Label("0"); vp2 = new Label("0"); vp3 = new Label("0"); vp4 = new Label("0"); vp5 = new Label("0"); vp6 = new Label("0"); vp7 = new Label("0"); vp8 = new Label("0"); vp9 = new Label("0"); vp10 = new Label("0"); vp11 = new Label("0"); vp12 = new Label("0"); panele.add(la1); panele.add(la2); panele.add(la3); panele.add(la4); panele.add(la5); panele.add(la6); panele.add(la7); panele.add(la8); panele.add(la9); panele.add(la10); panele.add(la11); panele.add(la12); panele.add(a1); panele.add(a2); panele.add(a3); panele.add(a4); panele.add(a5); panele.add(a6); panele.add(a7); panele.add(a8); panele.add(a9); panele.add(a10); panele.add(a11); panele.add(a12); panele.add(va1); panele.add(va2); panele.add(va3); panele.add(va4); panele.add(va5); panele.add(va6); panele.add(va7); panele.add(va8); panele.add(va9); panele.add(va10); panele.add(va11); panele.add(va12); panele.add(lp1); panele.add(lp2); panele.add(lp3); panele.add(lp4); panele.add(lp5); panele.add(lp6); panele.add(lp7); panele.add(lp8); panele.add(lp9); panele.add(lp10); panele.add(lp11); panele.add(lp12); panele.add(p1); panele.add(p2); panele.add(p3); panele.add(p4); panele.add(p5); panele.add(p6); panele.add(p7); panele.add(p8); panele.add(p9); panele.add(p10); panele.add(p11); panele.add(p12); panele.add(vp1); panele.add(vp2); panele.add(vp3); panele.add(vp4); panele.add(vp5); panele.add(vp6); panele.add(vp7); panele.add(vp8); panele.add(vp9); panele.add(vp10); panele.add(vp11); panele.add(vp12); a1.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va1.setText(" " + (200 - ade.getValue())); repaint(); } }); a2.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va2.setText(" " + (200 - ade.getValue())); repaint(); } }); a3.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va3.setText(" " + (200 - ade.getValue())); repaint(); } }); a4.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va4.setText(" " + (200 - ade.getValue())); repaint(); } }); a5.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va5.setText(" " + (200 - ade.getValue())); repaint(); } }); a6.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va6.setText(" " + (200 - ade.getValue())); repaint(); } }); a7.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va7.setText(" " + (200 - ade.getValue())); repaint(); } }); a8.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va8.setText(" " + (200 - ade.getValue())); repaint(); } }); a9.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va9.setText(" " + (200 - ade.getValue())); repaint(); } }); a10.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va10.setText(" " + (200 - ade.getValue())); repaint(); } }); a11.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va11.setText(" " + (200 - ade.getValue())); repaint(); } }); a12.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { va12.setText(" " + (200 - ade.getValue())); repaint(); } }); p1.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp1.setText(" " + (360 - ade.getValue())); repaint(); } }); p2.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp2.setText(" " + (360 - ade.getValue())); repaint(); } }); p3.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp3.setText(" " + (360 - ade.getValue())); repaint(); } }); p4.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp4.setText(" " + (360 - ade.getValue())); repaint(); } }); p5.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp5.setText(" " + (360 - ade.getValue())); repaint(); } }); p6.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp6.setText(" " + (360 - ade.getValue())); repaint(); } }); p7.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp7.setText(" " + (360 - ade.getValue())); repaint(); } }); p8.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp8.setText(" " + (360 - ade.getValue())); repaint(); } }); p9.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp9.setText(" " + (360 - ade.getValue())); repaint(); } }); p10.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp10.setText(" " + (360 - ade.getValue())); repaint(); } }); p11.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp11.setText(" " + (360 - ade.getValue())); repaint(); } }); p12.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent ade) { vp12.setText(" " + (360 - ade.getValue())); repaint(); } }); add ("North", paneln); add ("East", panele); } public void actionPerformed(ActionEvent e) { alles_auf_null(); if (e.getSource() == form1) { a1.setValue(200-180); a3.setValue(200-60); a5.setValue(200-36); a7.setValue(200-26); a9.setValue(200-20); a11.setValue(200-16); va1.setText("180"); va3.setText("60"); va5.setText("36"); va7.setText("26"); va9.setText("20"); va11.setText("16"); formel = "Rechteck-Schwingung: f(t) = sin(f.t) + 1/3 sin(3.f.t) + 1/5 sin(5.f.t) + ..."; repaint(); } if (e.getSource() == form3) { a1.setValue(200-180); a2.setValue(200-100); a3.setValue(200-60); a4.setValue(200-45); a5.setValue(200-36); a6.setValue(200-30); a7.setValue(200-26); a8.setValue(200-23); a9.setValue(200-20); a10.setValue(200-18); a11.setValue(200-16); a12.setValue(200-15); va1.setText("180"); va2.setText("100"); va3.setText("60"); va4.setText("45"); va5.setText("36"); va6.setText("30"); va7.setText("26"); va8.setText("23"); va9.setText("20"); va10.setText("18"); va11.setText("16"); va12.setText("15"); formel = "Sägezahn-Schwingung: f(t) = sin (f.t) + 1/2 sin(2.f.t) + 1/3 sin(3.f.t) + ..."; repaint(); } if (e.getSource() == form2) { a1.setValue(200-180); a3.setValue(200-20); a5.setValue(200-7); a7.setValue(200-4); a9.setValue(200-2); a11.setValue(200-1); va1.setText("180"); va3.setText("20"); va5.setText("7"); va7.setText("4"); va9.setText("2"); va11.setText("1"); p3.setValue(360-180); p7.setValue(360-180); p11.setValue(360-180); vp3.setText("180"); vp7.setText("180"); vp11.setText("180"); formel = "Dreieck-Schwingung: f(t) = sin(f.t) - 1/3² sin(3.f.t) + 1/5² sin(5.f.t) -+ ..."; repaint(); } if (e.getSource() == loeschen) { alles_auf_null(); formel = ""; repaint(); } } public void alles_auf_null() { a1.setValue(200); a2.setValue(200); a3.setValue(200); a4.setValue(200); a5.setValue(200); a6.setValue(200); a7.setValue(200); a8.setValue(200); a9.setValue(200); a10.setValue(200); a11.setValue(200); a12.setValue(200); p1.setValue(360); p2.setValue(360); p3.setValue(360); p4.setValue(360); p5.setValue(360); p6.setValue(360); p7.setValue(360); p8.setValue(360); p9.setValue(360); p10.setValue(360); p11.setValue(360); p12.setValue(360); va1.setText("0"); va2.setText("0"); va3.setText("0"); va4.setText("0"); va5.setText("0"); va6.setText("0"); va7.setText("0"); va8.setText("0"); va9.setText("0"); va10.setText("0"); va11.setText("0"); va12.setText("0"); vp1.setText("0"); vp2.setText("0"); vp3.setText("0"); vp4.setText("0"); vp5.setText("0"); vp6.setText("0"); vp7.setText("0"); vp8.setText("0"); vp9.setText("0"); vp10.setText("0"); vp11.setText("0"); vp12.setText("0"); } public double f(int x) { double rad = 314.159 / 180; double pw1 = Double.valueOf(vp1.getText()).doubleValue()*rad; double pw2 = Double.valueOf(vp2.getText()).doubleValue()*rad; double pw3 = Double.valueOf(vp3.getText()).doubleValue()*rad; double pw4 = Double.valueOf(vp4.getText()).doubleValue()*rad; double pw5 = Double.valueOf(vp5.getText()).doubleValue()*rad; double pw6 = Double.valueOf(vp6.getText()).doubleValue()*rad; double pw7 = Double.valueOf(vp7.getText()).doubleValue()*rad; double pw8 = Double.valueOf(vp8.getText()).doubleValue()*rad; double pw9 = Double.valueOf(vp9.getText()).doubleValue()*rad; double pw10 = Double.valueOf(vp10.getText()).doubleValue()*rad; double pw11 = Double.valueOf(vp11.getText()).doubleValue()*rad; double pw12 = Double.valueOf(vp12.getText()).doubleValue()*rad; return (double) (Double.valueOf(va1.getText()).doubleValue()*Math.sin((double)(x + pw1) / 100)) + Double.valueOf(va2.getText()).doubleValue()*Math.sin((double) (2 * x + pw2)/ 100 ) + Double.valueOf(va3.getText()).doubleValue()*Math.sin((double) (3 * x + pw3)/ 100) + Double.valueOf(va4.getText()).doubleValue()*Math.sin((double) (4 * x + pw4)/ 100) + Double.valueOf(va5.getText()).doubleValue()*Math.sin((double) (5 * x + pw5)/ 100) + Double.valueOf(va6.getText()).doubleValue()*Math.sin((double) (6 * x + pw6)/ 100) + Double.valueOf(va7.getText()).doubleValue()*Math.sin((double) (7 * x + pw7)/ 100) + Double.valueOf(va8.getText()).doubleValue()*Math.sin((double) (8 * x + pw8)/ 100) + Double.valueOf(va9.getText()).doubleValue()*Math.sin((double) (9 * x + pw9)/ 100) + Double.valueOf(va10.getText()).doubleValue()*Math.sin((double) (10 * x + pw10)/ 100) + Double.valueOf(va11.getText()).doubleValue()*Math.sin((double) (11 * x + pw11)/ 100) + Double.valueOf(va12.getText()).doubleValue()*Math.sin((double) (12 * x + pw12)/ 100) ; } public void paint (Graphics bs) { Color db = new Color(0,0,128); bs.setColor(db); bs.fillRect(0,0, 800, 600); bs.setColor(Color.white); bs.drawLine(0, 300,800,300); bs.setColor(Color.yellow); for (int i = 0; i<800; i++) bs.drawLine(i, 300 - (int) f(i), i+1, 300 - (int) f(i+1)); bs.setColor(Color.black); bs.drawString(formel,10,640); } }