Avatar billede bond_lover Nybegynder
18. januar 2005 - 22:57 Der 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
Avatar billede klm Nybegynder
19. januar 2005 - 14:35 #1
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;
Avatar billede bond_lover Nybegynder
19. januar 2005 - 17:21 #2
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
Avatar billede klm Nybegynder
19. januar 2005 - 19:00 #3
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;
Avatar billede bond_lover Nybegynder
19. januar 2005 - 19:10 #4
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 ?
Avatar billede klm Nybegynder
19. januar 2005 - 19:37 #5
Jeg tror det du søger skal være sådan.

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;
Avatar billede bond_lover Nybegynder
19. januar 2005 - 19:43 #6
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
Avatar billede klm Nybegynder
19. januar 2005 - 19:44 #7
Tak, du kan give point nu.
Avatar billede bond_lover Nybegynder
19. januar 2005 - 19:46 #8
Yep.. men måtte jeg kontakte dig igen?
Avatar billede klm Nybegynder
19. januar 2005 - 19:57 #9
Hej Bond lover,

Så vidt jeg husker skal du åbne mit svar, og vælge "accepter svar", ellers bliver dit spørgsmål ikke lukket, og jeg får ikke point.
Avatar billede bond_lover Nybegynder
19. januar 2005 - 23:10 #10
Sådan
Avatar billede jimgordon Nybegynder
24. januar 2005 - 20:33 #11
TChart som kommer med Delphi, er en fed fætter at lave grafer med.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester