Canvas Problem



  • Hallo zusammen,
    ich habe eine Methode erstellt, die auf ganz einfache WEise einen Graphen in ein Image zeichnet. Diese sieht so aus:

    void __fastcall TKepler::Graph2 (void)
    {
     Form1->Image3->Canvas->Pen->Color = clNavy;
     float R = StrToFloat(Form1->Edit2->Text);
     for (int i = 1; i < 160; i++)
      {
    
       Vrat(R,i,R);
       Form1->Image3->Canvas->LineTo(i+40,-Vrad+300);
      }
    }
    

    Das ist relativ einfach, doch besteht das Problem, das der Graph logischerweise immer an der gleichen Stelle anfängt. Da ich durch ein Editfenster erst die Variabel R bekannt geben muss, sieht der Graph natürlich immer anders aus. Leider zieht sich dann immer eine Linie nach rechts unten in die Ecke. Ich muss der Methode mit MoveTo die Startposition des Graphen sagen, um wirklich nur diesen zu sehen.

    Leider weiß ich nicht so recht, wie ich das machen soll. Eigentlich müsste das ja in die Schleife, weil dort der Graph berechnet wird, aber dies darf wiederum nicht sein, denn sonst würde eine ganze Fläche bemalt....

    Ich hoffe ihr versteht mein Problem!
    Vielen Dank
    lg, freakC++



  • Nimm den ersten Durchlauf der Schleife heraus und fange die Schleife mit dem "zweiten" an.

    Vrat(R,[b]1[/b],R);
    Form1->Image3->Canvas->MoveTo([b]1[/b]+40,-Vrad+300);
    for (int i = [b]2[/b]; i < 160; i++)
      {
       Vrat(R,i,R);
       Form1->Image3->Canvas->LineTo(i+40,-Vrad+300);
      }
    


  • Hey,
    das ist die Lösung. DAs ich da nicht selbst drauf gekommen bin....

    Vielen Dank, Morris Szyslak
    lg, freakC++


Anmelden zum Antworten