Einfacher Liniengraph
-
Hallo zusammen,
ich arbeite mit WinXP Prof und MS Visual C++ 6.0 / MFC
Zu meinem Problem:
habe shon mal dieses Problem gepostet, habe mich da aber mehr auf den Active X MS Chart Control 6.0 konzentriert.Da dies, wie anscheinend nicht nur ich finde, eine sehr komplizierte und schwierige Angelegenheit ist, muss ich es wohl anders anfangen.
Hat schon mal jemand von Euch selbst einen Graphen programmiert.
Also ich brauche "nur" ein Koordinatensystem, welchem ich zwei Vektoren übergebe:
* x-Wert
* y-Wertund aus diesen Werten soll der Graph gezeichnet werden.So simple wie möglich. Kann mir da bitte jmd helfen.
Wäre sehr wichtig!Vielen Dank im Vorraus
MfG Dippi
-
Moin,
ich hab genau das gleiche Problem... möchte einfach nur 2 Vektoren oder ne Matrix übergeben und die sol dann gezeichnet werden....da gibts doch bestimmt schon was vorgefertigtes....auf eine Lösung hoffend....
Karsten
-
Also wenn ich was hab, sag ich Dir natürlich sofort bescheid.
Hoffe unser Problem hat irgendjemand schon gelöst und kann uns helfen.
Mfg Dippi
-
schaut mal hier:
http://www.codeproject.com/miscctrl/
unter Charting Controls ist bestimmt was dabei.
-
erstmal danke für den Link!
Ich habe nur leider sehr wenig Ahnung von der ganzen Programmiererei...Das 2. Programm in der Liste wäre eigentlich genau das richtige, nur verstehe ich schon die Installation nicht, ganz zu schweigen von der Einbindung.
Vielleicht hat ja jemand ne leicht verständliche Anleitung für mich...
Ciao,
Karsten
-
OT: Nimm doch Excel...
-
ja, hab ich mir auch schon überlegt...nur wie bekomme ich die daten in excel eingelesen? es ist nich gerade wenig was zusammenkommt...sind ca 15*250 matrizen
-
ich verstehe es einfach nicht...ich möchte doch nur auf einen button klicken....dann sollen 2 vektoren übergeben werden und dann gezeichnet werden... wieso ist das bei visual c++ so schwer?
ich würde mir ja auch selbst was programmieren aber ich hab von dem klassenzeugs nich gerade viel ahnung.
vielleicht kann mir ja mal jemand ne ausführliche anleitung geben wie ich das grafiktool unter dem oben angegebenen link bei mir integrieren kann....also ein neues dialogfeld aufrufen und die vektoren übergeben...das kriege ich so noch hin...aber dann hörts auch schon auf.
kann mir denn mal bitte jemand schreiben wie ich denn nur einen einzigen punkt in das aufgerufene dialogfeld schreiben kann? oder wie ich das koordinatensystem erzeuge (müsste der quellcode dann in die funktion in der auch das Dialogfeld aufgerufen wird? also die funktion die durch das klicken des buttons aufgerufen wird?) wäre euch sehr dankbar!gute nacht!!!!
-
Wenn Du selbst Zeichnen willst, dann kannst Du das in der OnPaint deines Dialoges machen.
Zum Zeichen benutzt Du:
(alles aus der Klasse CDC Beschreibung siehe MSDN)FillSolidRect -> Füllen des Hintergrundes
SetPixel -> Setzt ein Pixel
MoveTo -> Setzt den Startpunkt einer Linie
LineTo -> Setzt den Endpunkt einer Linie und Zeichnet diese
TextOut -> Textausgabe
DrawText -> Textausgabeoder Du erzeugst Dir eine Bitmap im Speicher und Zeichnest in dieser deinen Graphen und Blittest (BitBlt) diesen in der OnPaint auf den Dialog.
als einfaches Bsp:
int werte[10] = {10,50,20,15,80,79,45,33,0,55}; void CGraph::OnPaint() { CPaintDC dc(this); // device context for painting CRect rect; GetClientRect(&rect); //Größe des Dlg hohlen dc.FillSolidRect(rect,0xFF00FF); //hintergrund in Lila füllen dc.MoveTo(0,rect.bottom); //Start nach links unten setzen CPen pen(PS_SOLID,2,0xFFFFFF); //Zeichenstift 2 Pixel breit in Weiss erstellen dc.SelectObject(pen); //Zeichenstift auf den dc wählen for(int a = 0,b=0;a < rect.right;a+=rect.right/10) { dc.LineTo(a,rect.bottom-werte[b++]); // Linien Zeichnen } }
Güstig ist die Werte im Konstruktor zu übergeben zBsp als Referenz auf ein Array.
Gruß Matthias
-
danke, das hilft mir erstmal weiter.....
-
Mal im Ernst: wenn man so gut wie keine Ahnung vom Programmieren hat, sollte man von sowas die Finger lassen und erstmal die Grundlagen lernen.
Immer dieses "Da gibts doch sicher was" ... . Mag sein, dass es was gibt, aber auch damit muss man umgehen können und dazu braucht man nunmal die Grundlagen der Programmierung und bei der MFC + weitere Klassen das wissen über OOP.Und Grafikprogrammierung ist selten trivial und "nur mal", auch wenns nur Vektoren sind.
-
Ja, ok, eigentlich ist das der normale Weg, nur gibt es Leute die unter Zeitdruck (z.B. für ne Studienarbeit) stehen.
Und das programmieren ist sicher nicht in 2 Monaten gelernt wenn man nebenbei noch vieles Andere zu tun hat.
Trotzdem nochmal Vielen Dank an die, die geholfen haben....das reicht erstmal.
Ich werde versuchen die einzelnen Punkte einfach zu malen und dann zu verbinden....
Clippen und rasterisieren kommmt dann auch noch.... wenns was sinnvolles wird, kann ich es auch gern zur Verfügung stellen, für alle die, die nicht erst viel installieren und einbinden wollen.Ciao,
Karsten