Parabel mit Hilfe von chartfx



  • Hallo Jungs,

    ich möchte mit der Hilfe von chartfx eine Parabel zeichnen. Ich habe es auch hinbekommen, aber ich möchte nun wissen wie ich das Koordintatenkreuz nach oben verschieben kann, denn eine Parabel kann auch in einem Negativenbereich kommen und dass könnte ich mir nicht anzeigen lassen.

    [code]//---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
      : TForm(Owner)
    {
     Form1->Caption="Parabel";
     Chartfx1->Visible=false;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     int x,wert;
     Chartfx1->OpenDataEx(COD_VALUES,1,21); // 1 Zahlenreihe mit 21 Werten
     Chartfx1->Visible=true;
     Chartfx1->ThisSerie=0;
     wert=StrToInt(Edit1->Text);
    
     for(x=0;x<=20;x++)
      {
        Chartfx1->Value[x]=((x-wert)*(x-wert));
        Chartfx1->Legend[x]=IntToStr(x-wert);
      }
     Chartfx1->Adm[CSA_MAX]=(x-wert)*(x-wert); // groesster Wert der y-Achse
     Chartfx1->Adm[CSA_MIN]=0;                 // kleinster Wert der y-Achse
     Chartfx1->Adm[CSA_GAP]=4;
    
     // Gap used in Y-axis. This value is calculated automatically each time you
     // create a chart. If you want your Y-axis to put thick at a set interval,
     // you would specify it with this index.
     Chartfx1->CloseData(COD_VALUES);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
     Close();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
     Chartfx1->PointType = 0;
     Label1->Caption = Chartfx1->PointType;
    }
    //---------------------------------------------------------------------------
    [/code]
    


  • Hat wirklich keiner eine Ahnung warum das nicht geht ? Ich finde es schade das hier keiner helfen kann. Ich dachte das ist hier ein Forum Speziel für C++.



  • Hallo

    Dein Problem hat nichts mit der Sprache C++ zu tun sondern mit der speziellen Chart-Komponente. Selbst wenn man sich nicht nur mit C++ auskennt sondern auch mit der VCL des Builders nützt das nichts wenn man diese spezielle Komponente noch nie benutzt hat.
    Schau dir also die Doku der Komponente an, und alle Methoden und Eigenschaften (auch die der untergeordneten Klassen).

    bis bald
    akari



  • wenn du den kleinsten Wert der Y-Achse (Zeile 33) mal auf irgendeinen negativen Wert und nicht auf 0 setzt, wird auch der negative Bereich der Y-Achse angezeigt...

    allerdings frage ich mich wann die von dir verwendete Funktion im Y-Bereich denn negativ werden soll, da du ja eine einfache quadratische Funktion verwendest

    und noch einen Tip: das was du in FormCreate geschrieben hast, kannst und solltest du auch mit in den Konstruktor schreiben und das FormCreate weglassen



  • Naja nicht alles sehr Hilfreich aber ich bedanke mich trotzdem. Achja wenn ich die Hilfe zu chartfx aufrufe, dann bekomme ich keine Infos.



  • Hallo,

    Frag doch mal hier
    http://community.softwarefx.com/forums/17.aspx
    Das Problem ist wohl, dass ChartFX für den BCB nicht mehr weiter entwickelt wird. Da geht nur die 98er Variante. Ich würde vorschlagen auf ein anderes Produkt zu wechseln wie z.Bsp. TeeChart. Eine Light-version von TChart ist bei allen BCB-Varianten mit dabei. Dafür wirst du wahrscheinlich eher Hilfe bekommen.



  • Jo danke. Aber ich muss das in der Schule durchnehmen und das einzige was ich wissen will ist nur, welcher Befehl oder Einstellung muss ich machen, damit ich das Koordinatensystem nach oben verschieben kann damit ich auch den negativen Bereich angezeigt bekomme.



  • hast du das schonmal versucht?

    Linnea schrieb:

    wenn du den kleinsten Wert der Y-Achse (Zeile 33) mal auf irgendeinen negativen Wert und nicht auf 0 setzt, wird auch der negative Bereich der Y-Achse angezeigt...

    und noch genauer

    Chartfx1->Adm[CSA_MIN]=-10;
    


  • Also das ist es nicht direkt. Ich meinte eher an das Koordinatensystem. Naja wenn ich einen beliebigen Wert eingebe, dann ändert sich die ganze Ansicht.
    Ich habe als Zahl die 9 vordefiniert. Wenn ich aber 20 eingebe, dann ändert sich das Raster also es wird größer und somit kann ich dann den Graphen nicht mehr sehen. Wenn es nicht geht dann ist das ok aber wenn es doch gehen sollte, dann sagt es mir bitte. 🙂


Anmelden zum Antworten