import java.applet.Applet;
import java.awt.*;
import java.lang.Math.*;

public class standing2 extends Applet implements Runnable {
    Thread th=null;
    float y1[] = new float[50];
    float y[] = new float[50];
    double t = 0;double lambdai=1./6.;double nu=1.;
    double scale=0.175;
    //一応波長が6cm。周波数が1秒のつもり。72dpiでscaleは計算。(あってない)
    //500Mhzの計算機だと50点が限界か?
    public void init(){
   }
 
    public void start(){
        if (th==null){
            th=new Thread(this);
            th.start();
        }
    }

    public void run(){
        int i;double PI=3.1416;
        while(true){
           for(i=0;i<50;i++){
	       //data を作成 式は簡単なはず。                    
             y[i]=30.f*(float)Math.sin(2*PI*((double)i*scale*lambdai-nu*t*0.01));
             y1[i]=30.f*(float)Math.sin(2*PI*((double)i*scale*lambdai+nu*t*0.01));
            }
            t=t+1.;
            repaint();

            try {
                th.sleep(100);
            }
            catch (InterruptedException e){}
        }
    }

    public void paint(Graphics g){
        int i,ix,iy,ix0,iy0;
        g.drawRect(0,0,500,400);
            for(i=1;i<50;i++){
                ix0=(i-1)*10;iy0=100-(int)y[i-1];
                ix=i*10;iy=100-(int)y[i];
                g.drawLine(ix0,iy0,ix,iy);
            }
            for(i=1;i<50;i++){
                ix0=(i-1)*10;iy0=200-(int)y1[i-1];
                ix=i*10;iy=200-(int)y1[i];
                g.drawLine(ix0,iy0,ix,iy);
            }
            for(i=1;i<50;i++){
                ix0=(i-1)*10;iy0=300-(int)(y[i-1]+y1[i-1]);
                ix=i*10;iy=300-(int)(y[i]+y1[i]);
                g.drawLine(ix0,iy0,ix,iy);
            } 

        /*      g.drawImage(img,x,y,this);*/
    }
    public void stop(){
        if (th!=null){
            th.stop();
            th=null;
        }
    }
}

