Cum de a desena un grafic
Întrebați cum să construiți programul pentru funcția setată și, în general, este posibil să o utilizați cu ajutorul mijloacelor standard Delphi
consultați componenta TChart
> Și dacă, în general, este posibil să se facă prin mijloace standard
> Delphi
cu siguranță este posibil să faci!
> Spuneți-mi cum să construiți un grafic în Delphi cu o funcție dată
Luați TCavas și trageți.
Canvas.MoveTo (x, y); trecerea la un punct dat
Canvas.LineTo (x, y); line la un punct dat
Și este posibil mai mult în detaliu și în delhi I începător
Trebuie să construiesc un sinusoid, cred că Canvas.LineTo nu va funcționa, deși poate că mă înșel
> Trebuie să construiesc un sinusoid, mi se pare Canvas.LineTo
> nu este potrivit, deși poate greșesc
Se pare - trebuie să fii botezat.
Spuneți-mi unde să găsiți componenta TCavas
TCanvas nu a fost niciodată o componentă (și nu va fi).
cum nu se potrivește.
trebuie să calculați graficul
și anume aproximativ așa
mutați punctul la începutul desenului MoveTo
Canvas.MoveTo (0, Canvas.height)
apoi într-un ciclu, trageți un grafic al funcției dvs.
Pentru i: = 0 la 800 nu
# xA0; începeți # xA0; # xA0; # xA0; # xA0; # xA0; # xA0;
# xA0; Canvas.LineTo (i, Sin (i));
# xA0; sfârșitul;
Ps. Sper că creierul meu funcționează corect
TCanvas (din nou maestrii vor veni la mine) să fie în practic orice component vizual. dar este mai bine să utilizați PaintBox
> TCanvas (din nou maestrii vor veni la mine) să fie în practică
> orice componentă vizuală. dar este mai bine să utilizați PaintBox
TCanvas este esența HDC. Există într-adevăr multe componente vizuale (dar nu toate). Nu toată lumea o are în public.
Greșit, va exista o linie dreaptă
> Greșit, va exista o linie dreaptă
oh bine da
Canvas.LineTo (i, rotundă (Sin (i) * 100));
Și dacă totuși te întorci la TChart?
Argumentul trebuie să fie în radiani
Aruncați graficul pe formular, faceți dublu clic pe partea dreaptă. Făcând clic pe butonul, adăugați tipul de grafic și experimentul
un exemplu de sinusoidă când apare o fereastră:
procedura TForm1.FormActivate (expeditor: TObject);
var
k: Integer;
începe
pentru k: = 0 până la 20 nu
[0] .AddXY (k, sin (k * pi / 10), "", clRed);
se încheie;
standardul.
Iată codul din DRKB. Elaborează un grafic de funcții.
procedura TForm1.Button3Click (expeditor: TObject);
var x, y: matrice [1..50] de dublu;
# xA0; i: întreg;
# xA0; scalex, scaley, ymin, ymax, xmin, xmax: duble;
începe
# xA0; pentru i: = 1 până la 50 nu
# xA0; # xA0; începeți
# xA0; # xA0; # xA0; y [i]: = sin (i * 0,5);
# xA0; # xA0; # xA0; x [i]: = i;
# xA0; # xA0; sfârșitul;
# xA0; xmin: = x [1];
# xA0; xmax: = x [1];
# xA0; ymin: = y [1];
# xA0; ymax: = y [1];
# xA0; pentru i: = 2 până la 50 nu
# xA0; # xA0; începeți // sau utilizați ymin: = MinValue (y); și așa mai departe.
# xA0; # xA0; # xA0; dacă y [i]
# xA0; # xA0; # xA0; dacă x [i]
# xA0; # xA0; sfârșitul;
# xA0; scalex: = varianta de vopsea1.Lățime / (xmax - xmin);
# xA0; scaley: = vopsea1.Valoare / (ymax - ymin);
# xA0; cu paintbox1.canvas face
# xA0; # xA0; începeți
# xA0; # xA0; # xA0; moveto (trunc (scalar * (x [1] - xmin)), varianta vopsea1.height - trunc (scaley * (y [1] - ymin)));
# xA0; # xA0; # xA0; pentru i: = 2 până la 50 nu
# xA0; # xA0; # xA0; # xA0; Lineto (trunc (scalar * (x [i] - xmin)), varianta vopsea1.height - trunc (scara * (y [i] - ymin)));
# xA0; # xA0; sfârșitul;
se încheie;
MoveTo / LineTo înlocui mai bine Windows.PolyPolyLine
Memorie: 0,75 MB
Durată: 0,046 secunde