bratance, mnogo si ga zakomplikovao. evo probaj ovako:
stavi image1 dimenzija 400 x 300 na formu i timer1 sa intervalom 50ms
klatno se krece izmedju uglova min i pi - min, sa pocetnim uglom pi/2. probaj neke druge vrednosti ako hoces...d ti je pravac, +1 za levo, -1 za desno (ili obrnuto). kada se stigne do kraja menja se pravac ali se i koriguje min ugao zbog uticaja otpora. to bi moglo i u svakom koraku da se radi ali za manje vrednosti...skoro svejedno.
Code:
var
Min: extended = pi/4;
alfa: extended = pi/2;
d: extended = -1;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if ((alfa > min) and (d = -1)) or ((alfa < pi - min) and (d = 1)) then
begin
alfa := alfa + d * 0.1;
Image1.Canvas.Rectangle(0, 0, 400, 300);
Image1.Canvas.MoveTo(200, 0);
Image1.Canvas.LineTo(Round(200 + 200* cos(alfa)), Round(300 * sin(alfa)));
Image1.Refresh;
end
else
begin
d := -d;
min := min + 0.05;
Timer1.Interval := Timer1.Interval + 2;
end;
end;
nisam crtao i lopticu, to mozes i sam...samo linija koja se klati
pozdravi
Ride the rainbow, crack the sky