firepg Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 Mam napisać procedurę, która ma rysować mi 100 kwadratów, w takim porządku jak trójkąt Pascala, tylko tutaj ma być 1 duży kwadrat i w nim mniejsze kwadraty. Ma być ich razem 100. Kompletnie nie wiem jak się do tego zabrać. Czy ktoś mi napisze gotową procedurę? Będę bardzo wdzięczny. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 19 Kwietnia 2010 Udostępnij Opublikowano 19 Kwietnia 2010 poczytaj sobie o tym: http://4programmers.net/Delphi/For Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
firepg Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 Ja już zrobiłem trójkąt pascala, trochę się w tym orientuję, ale nie mogę zrobić tego samegoz kwadratami... Rysuje mi jeden duży kwadrat, w śordku jakieś 3 linie i się program zawiesza. Wydaje się wszystko dobrze zrobione, ale coś nie chodzi :( Pracę mam mieć na jutro. Jeżeli ktoś się orientuje w trójkącie pascala, prosiłbym o to żeby napisał podobną procedurę tylko z kwadratami. Z góry dziękuję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 19 Kwietnia 2010 Administratorzy Udostępnij Opublikowano 19 Kwietnia 2010 Pokaż swój kod, może jest jakiś głupi błąd i nie musimy za Ciebie odwalać całej roboty. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
firepg Opublikowano 19 Kwietnia 2010 Autor Udostępnij Opublikowano 19 Kwietnia 2010 Pracę mam na komputerze w pracowni. Teraz piszę na laptopie. Z tego co pamiętam to tak: Podstawiłem do pracy 4 punkty (x1,y1)(x2,y2)(x3,y3)(x4,y4) . Podstawilem też za nie litery w procedurze (a,B)(c,d)(e,f)(g,h). Miałem napisana procedure: If c-a>5 then (tutaj zależy mi na tym, żeby nie rysowało mi takich mini kwadracików). Wtedy podstawiam funkcję canvas. Lineto i Moveto do współrzędnych a,b,c,d,e,f,g,h, w zależności od boków. Na samym końcu mam duży kwadrat, od którego wychodzimoja procedura z punktami A(100,400), B(400,400),C (400,100) i D(100,100). Dla mnie wydaje się cała procedura dobrze zrboiona, ale tak na pewno nie jest. Gdzieś jest błąd tylko, że ja go nie widzę. Prcę wstwie jutro ok. 8:00. Będę prosił o szybką odpowiedź, bo mam czas tylko do 9:40. Wtedy już muszę oddać pracę. Licze na Was, że mi pomożecie. Do jutra :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
firepg Opublikowano 20 Kwietnia 2010 Autor Udostępnij Opublikowano 20 Kwietnia 2010 Oto procedura: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; procedure sierp(a,b,c,d,e,f,g,h:integer); var Form1: TForm1; x1,x2,x3,x4,y1,y2,y3,y4: integer; implementation procedure sierp(a,b,c,d,e,f,g,h:integer); var x1,x2,x3,x4,y1,y2,y3,y4: integer; begin If c-a>5 then begin form1.Canvas.MoveTo(a, B) ; form1.Canvas.LineTo(c,d); form1.Canvas.LineTo(e,f); form1.Canvas.LineTo(g,h); form1.Canvas.LineTo(a, B) ; x1:=round((a+c)*1/2); x2:=round((c+e)*1/2); x3:=round((e+g)*1/2); x4:=round((g+a)*1/2); y1:=round((b+d)*1/2); y2:=round((d+f)*1/2); y3:=round((f+h)*1/2); y4:=round((h+ B) *1/2); sierp(a,b,x1,y1,c,d,x2,y2); sierp(c,d,x2,y2,e,f,x3,y3); sierp(e,f,x3,y3,g,h,x4,y4); sierp(g,h,x4,y4,a,b,x1,y1); end; end; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin x1:=100; x2:=400; x3:=400; x4:=100; y1:=400; y2:=400; y3:=100; y4:=100; sierp(x1,y1,x2,y2,x3,y3,x4,y4); end; end. Proszę o szybkie odpowiedzi, dotyczące tego problemu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
firepg Opublikowano 20 Kwietnia 2010 Autor Udostępnij Opublikowano 20 Kwietnia 2010 Temat do zamknięcia. Znalazłem bład. Trzeba bylo podstawić dodatkową współrzędną S(x5,y5) - jest to środek. Po podstawieniu do danych wszystko pięknie śmiga. 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ę