Ich habe ein Programm geschrieben, das folgenden Quelltext enthält:
Die Linie die in der paint() Funktion gezeichnet wird soll hin und her schwingen. Im Moment bewegt sie sich schon hin un her, aber ruckartig, das heißt sie springt von einem Endpunkt bis zum anderen. Woran kann das liegen?
Java:
class Zeichnerklasse extends Canvas implements Runnable
{
int wartezeit;
int bildschirmhöhe;
int bildschirmbreite;
int x ;
int x2 ;
int y;
int y2;
public Zeichnerklasse ()
{
bildschirmhöhe = getHeight ();
bildschirmbreite = getWidth ();
x = bildschirmbreite/2;
y = bildschirmhöhe-60;
x2 = bildschirmbreite/2;
y2 = y-200;
}
public void paint (Graphics g)
{
g.setGrayScale (255);
g.fillRect (0,0, bildschirmbreite, bildschirmhöhe);
g.setColor(0, 0, 0);
g.fillArc ( (bildschirmbreite-40)/2,bildschirmhöhe-80 ,40,40,0,360);
g.setColor (255,0,0);
g.drawLine (x, y, x2, y2 );
}
public void start()
{
Thread thread = new Thread (this);
thread.start ();
}
public void run ()
{
while (true)
{
for (int i=0;i<60;i++)
{
x2 =(int) (Math.cos ((i/180*Math.PI)*(bildschirmbreite-60)+30));
y2 = (int) (Math.sin (i/180*Math.PI)*((bildschirmhöhe-60)/2)+140);
repaint();
serviceRepaints();
try
{
Thread.sleep (wartezeit*60);
}
catch (InterruptedException o)
{
}
if (x2 == bildschirmbreite)
break;
}
for (int j=60; j>0; j--)
{
x2 =(int) ((Math.cos (j/180*Math.PI)*(bildschirmbreite-60)+30));
y2 = (int) ((bildschirmhöhe-60)* Math.sin (j/180*Math.PI) +140);
repaint();
serviceRepaints();
try
{
Thread.sleep (wartezeit*60);
}
catch (InterruptedException o)
{
}
if (x2 == 0)
break;
}
}
}
public void stop()
{
}
}
Die Linie die in der paint() Funktion gezeichnet wird soll hin und her schwingen. Im Moment bewegt sie sich schon hin un her, aber ruckartig, das heißt sie springt von einem Endpunkt bis zum anderen. Woran kann das liegen?