magda111 Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 Chcę napisać program, który będzie mi rysował trójkąt a w nim punkt(obojętnie gdzie byle w trójkącie). Potem ma rysować linie od tego punktu do wylosowanego wierzchołka trójkąta. I dokladnie w polowie tej linii ma pojwiać się nowy punkt. Następnie z tego punktu ma być linia do nowo wylosowanego wierzcholka trojkata, w połowie znów punkt i tak milion razy. To chyba za pomocą funkcji Random tylko ja nie wiem za bardzo jak się jej używa ;/ wiem, że ma wylosować liczbe od 1-3 i ma przypisac wynikowi odpowiednią rzecz (w tym przeypadku współrzędne wierzchołków trójkąta). Czy ktoś miał z tym styczność, bo podobno daje fajny efekt. Mam taki kod, ale nie wiem co y tzmi bledami.. procedure TForm1.Button1Click(Sender: TObject); var ax,ay,h,a,n,x,sx,sy,sx1,sy1:integer; begin ax:=100; ay:=100; a:=200; h:= round(a*sqrt(3)/2); sx:=200; sy:=200; canvas.Polygon([point(ax,ay+h),point(ax+a,ay+h), point(round(ax+a/2),ay) ]); for n:=1 to 1000000 do randomize; x:=random(3); sx1:=sx; sy1:=sy; if x:=1 then sx1:= round((ax+sx)/2); sy1:= round((ay+h+sy)/2); canvas.Pixels[sx1,sy1]:=rgb(0,0,0); if x:=2 then sx1:=round((sx+ax+2)/2); sy1:=round((sy+ay+h)/2); canvas.Pixels[sx1,sy1]:=rgb(0,0,0); if x:=3 then sx1:=round((sx+round(ax+a/2))/2); sy1:=round((sy+ay)/2); canvas.Pixels[sx1,sy1]:=rgb(0,0,0); end; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 w pascalu cz w gm? ;> bo kod taki pascalowy :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
slabix Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 random(3) zrobi ci liczby: 0,1,2 (często 0.123, 1.123 itp) bo random robi losowa liczbe, nie calkowita, losową od 0 do podanego argumentu ;), a zawsze mniejszą od podanego argumentu (czyli np. random(4) zrobi liczby (tez po przecinku) od 0 do 3) Więc jeżeli x ma się równać 1,2 lub 3 napisz GML x = round(random(3))+1 a nie x = random(3) ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 slabix, to nie gml Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 x := round( random( 3 )) +1 nie duża różnica :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harv Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 procedure TForm1.Button1Click(Sender: TObject); begin canvas.Polygon([point(ax,ay+h),point(ax+a,ay+h), point(round(ax+a/2),ay) ]); canvas.Pixels[sx1,sy1]:=rgb(0,0,0); Dla mnie duża :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
magda111 Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 ok dzięki, chociaż coś. Ja to robię w delphi :) a jeszcze mam pytanie, bo wychodzi mi błąd z Boolean, o co chodzi? Proszę o korzystanie z magicznego przycisku edycji zamiast pisania drugiego posta z rzędu. Woock Mam takie pytanie do Was. Co oznacza błąd [Error] Unit1.pas(41): Missing operator or semicolon przy czym podkreśla mi sx1:=sx; sy1:=sy; Ignorowanie uwag moderatora na temat doublepostów. Warn. Woock Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się