18. januar 2005 - 22:57Der er
10 kommentarer og 1 løsning
Grafer i Delphi
Hejsa... Jeg skal lave et program i Delphi. Jeg skal lave sådan at computeren selv plotter punkter ind i en graf og samtidig sætter en linje mellem dem. Håber nogle kan hjælpe fordi har aldrig lavet graf før i Delphi
Du skal oprette et Image på formen, derefter kan du anvende Canvas til at tegne med både linier, cirkler osv. Se under TCanvas i hjælpen.
procedure TForm1.Button1Click(Sender: TObject); begin with Image1 do begin Canvas.Brush.Color := clRed; Canvas.Brush.Style := bsDiagCross; Canvas.Ellipse(0, 0, Image1.Width, Image1.Height); end; end;
Ok men hvad nu hvis jeg selv skal have den til at genere punkter og så sætte linje mellem dem altså sådan noget random noget. Altså eks. Den skal enten gå 1 op eller 1 ned i y akse og det tilsvarende af x akse og så sætte et punkt og det skal den gøre flere gange... og sætte streg mellem punkter
Her er vedlagt et eksempel hvor X-værdien går fra 0 til 99, kurven starter med MoveTo(0,0). Y-værdien varierer tilfældigt imellem 0 og 100. Bemærk at øverste venstre hjørne er 0,0
procedure TForm1.Button1Click(Sender: TObject); var X : Integer; begin Randomize; with Image1 do begin Canvas.Brush.Color := clRed; Canvas.MoveTo(0,0); for X:=1 to 99 do Canvas.LineTo(X, Random(100)); end; end;
Ok klm... Det hjalp lidt.. Men det jeg ønsker er en kode der viser følgende: En partikel starter i et punkt. Så siger man at den skal gå 1 skridt, dvs. den kan enten gå op, ned, venstre eller højre. Så siger man at den skal tage f.eks. 100 af disse skridt og så skal man se hvor langt den er fra udgangspunktet. Kan det laves ?
procedure TForm1.Button1Click(Sender: TObject); var X, Y, I : integer; begin X:=100; // StartPos Y:=100; with Image1 do begin Canvas.MoveTo(X,Y); For I:=0 to 99 do begin case Trunc(Random(4)) of // Enten 0, 1 2 eller 3 0 : dec(X,5); // Venstre 1 : inc(X,5); // Højre 2 : dec(Y,5); // Op 3 : inc(Y,5); // Ned end; //Canvas.MoveTo(X-1,Y-1); // Hvis denne linie medtages tegnes prikker Canvas.LineTo(X,Y); end; end; end;
Tak det hjalp rigtig meget klm... Du får point nu, men hvis jeg nu løber ind i problemer senere må jeg så spørge dig om hjælp (du skal nok få noget for det).. Min email og messenger addresse er: dexter@dexterweb.dk
TChart som kommer med Delphi, er en fed fætter at lave grafer med.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.