rysowanie lini

0

jak zrobic ze przez 3 sekundy rysune sie linia po prostu tworzy sie przez ten czas coraz wieksza az po 3 sekundach staje a takj pozycji jaka zostala po 3 sekundach??

0

Zrób sobie po prostu timer, w którym będziesz rysował corazwiększą linię.

0

Można też łatwo zrobić ją z kropek (punktów) + Timer.

0

Interval Timera1 na 10

var
N : Integer; //Oczywiscie zmienne globalne:)
P1, P2 : TPoint;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(N);
Canvas.PenPos := P2;
Canvas.LineTo(Round(P1.X*(N/300) + P2.X), Round(P1.Y*(N/300) + P2.Y));
if N*Timer1.Interval = 3000 then Timer1.Enabled := False;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
N := 0;
P1 := Point(250, 75); //Punkt zakonczenia lini
P2 := Point(30, 25); //Punkt rozpoczecia lini
end;

0

dobra ja jeszcze inaczej troche fizyki: s:= (a*t^2)/2
przyjimijmy ze a to 4
var globalne
st,mt : integer;
count :integer = -1;

oncreate
st := gettickcount();
w timerze
var
s : integer;
begin
//nie jest to za dobre
if count > 4 then
begin
canvas.moveto(0,30);
canvas.lineo(30,30);
exit;
end;
canvas.moveto(0,30);
mt := gettickcount() - st;
s := (4mtmt)/2;
canvas.lineto(s,30);
inc(count); //teraz ogranicznik

gdyby to nie zadzialalo =] sprawdz symulacja grawitacji w dzialeddownload>kody źródłowe

1 użytkowników online, w tym zalogowanych: 0, gości: 1