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

public class wave2 extends Applet implements Runnable {
    Thread th=null;
    float y0[] =new float[50];
    float y1[] =new float[50];
    float y[] = new float[50];
    
    public void init(){
    int i;double PI=3.1416;
    
	for(i=0;i<25;i++){
	    y0[i]=10.f/24.f*(float)i;
	}
	for(i=25;i<50;i++){
	    y0[i]=-10.f/24.f*(float)(i-49);
	}
	/*  for(i=7;i<50;i++){
	    y0[i]=0.f;
	    }*/
	y1[0]=y0[0];y1[49]=y0[49];
	for(i=1;i<49;i++){
	    y1[i]=(y0[i+1]+y0[i-1])/2.f;
	}

	
    }

    public void start(){
	if (th==null){
	    th=new Thread(this);
	    th.start();
	}
    }

    public void run(){
	while(true){
	    int i;
	    /*	    if (x<=0 || x>=380)ax=-ax;//img1.gif xsize 120
	    if (y<=0 || y>=360)ay=-ay;//ysize 40
	    x=x+ax;
	    y=y+ay;*/
	    repaint();
	    for(i=1;i<49;i++){
	        y[i]=y1[i+1]+y1[i-1]-y0[i];
	    }
	    for(i=1;i<49;i++){
	        y0[i]=y1[i];y1[i]=y[i];
	    }

	    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=200-(int)(y1[i-1]*10.f);
		ix=i*10;iy=200-(int)(y1[i]*10.f);
	        g.drawLine(ix0,iy0,ix,iy);
	    }
	/*	g.drawImage(img,x,y,this);*/
    }
    public void stop(){
	if (th!=null){
	    th.stop();
	    th=null;
	}
    }
}
