parabel zeichen
-
Hi
Also ich versuche mit der Paintbox eine Parabel zu zeichnen
soweit bin ich bisher gekommenvoid __fastcall TForm1::PaintBox1Paint(TObject *Sender) { //Variablen float i; int pos=0; TPaintBox *pb = (TPaintBox *)Sender; TCanvas *canv = pb->Canvas; //Hintergrund canv->Brush->Color = clBackground; canv->FillRect(pb->ClientRect); // Farbfestlegung canv->Pen->Color = clBlack; for(i=0; i<250; i++) { //x^2 canv->MoveTo(250+i, 250-pos); canv->LineTo(250+(i+1), 250-((pow((i+1)/20, 2))*20)); //position festhalten pos = (pow((i+1)/20, 2))*20; }
funktioniert zwar, sieht aber ein wenig seltsam aus. Und die Schleife über 250 pixel ist irgendwie auch nicht der burner(unflexibel).
gibts da vielleicht irgendeine andere Möglichkeit
-
TCanvas::Poly... !?
-
frosty,
frosty schrieb:
//x^2 canv->MoveTo(250+i, 250-pos); canv->LineTo(250+(i+1), 250-((pow((i+1)/20, 2))*20));
funktioniert zwar, sieht aber ein wenig seltsam aus.
ich würde float-Werte zwischen -1 und 1 nehmen, quadrieren, auf die Größe der Grafik hoch skalieren (also z.B. mit 250 multipilizieren) und dann Pixel-weise die Parabel zeichnen.
-
danke für die Antworten..
hmmm... pixel-weise hört sich gut an aber ich weiss nicht welche methode ich dafür nehmen soll.
und eine polybezier-kurve kann man, soweit das stimmt, was ich nachgelesen habe, nur durch vier punkte definieren, das ist irgendwie zu wenig für die Kurven, die ich zeichenn möchte
Sorry bin Anfänger
mfg
frosty
-
frosty,
frosty schrieb:
pixel-weise hört sich gut an aber ich weiss nicht welche methode ich dafür nehmen soll.
probier's mal mit TCanvas::Pixels (habe ich noch nie benutzt, sieht aber einfach aus). Das steht übrigens auch in der Hilfe (das ist diese F1-Geschichte ...)