import java.util.*;

public class HarmonischeDaliUhr extends DaliUhr
{
protected Oszillator Schwingung[];
protected int Zeit;

public void init()
	{
	super.init();
	Schwingung = new Oszillator[12];
	Random r = new Random();
	for (int i=0; i < 12; i ++)
		{
		Schwingung[i]=new Oszillator(Math.abs(r.nextInt())%(Laenge-5)
					      + ((r.nextInt()>=0) ? 5: -5),    //Amp
					       Math.abs(r.nextInt())%10 +15 ) ;               //Periode
		}
	Zeit = 0;
	}
	
public void MoveFixpunkte()
	{
	Zeit++;
	for (int i=0;i<12;i++)
		{
		Radien[i*5] =(int)(2.5*Laenge)+ Schwingung[i].getElong(Zeit);
		};
	Radien[60] = Radien[0];
	}

}


class Oszillator
{
private int Amplitude;
private int Periode;

public Oszillator (int A,int P)
	{
	Amplitude = A;
	Periode = P;
	}

public int getElong(int zeit)
	{
	double omega = 2*Math.PI/Periode;
	return (int)(Amplitude*Math.sin(omega*zeit)+0.5);
	}

}

