3D Graph
-
Hallo zusammen,
Ich hab mir eine Komponente runter geladen die mir 3d Graphen anzeigt. Die funktion um die Daten zu übergeben versteh ich nicht so ganz genau. Da leider keine Anleitung dabei hab ich mir gedacht das hier villeicht einer ne Ahnung hat was damit gemeint ist.
Also der Prototyp sieht so aus:
SetData(float **Z, float *XAxis, int XMaxPoint, float *YAxis, int YMaxPoint);X und Y Achse sind ja noch recht logisch. Denen übergeb ich ein Array dessen Größe durch MaxPoint festgelegt wird. Aber Z soll jetzt eine Matrix sein dessen erstes feld so groß wie X ist und das zweite so groß wie Y ist (Aus beiliegenden mini Beispiel entnommen).
Kann mir vielleicht jemand weiter helfen?
Danke schonmal
P.S. Bin mir sicher ob ich das richtige Forum dafür getroffen hab. Da es sicher aber um eine BCB komponente handelt hab ich mir für dieses entschieden.
-
Hallo
Betrifft aber nur reine C/C++ Syntax, nicht VCL-spezifische Erweiterungen. Deshalb wirst du verschoben.
Vermutlich sollst du an Z ein zweidimensionales Array übergeben.bis bald
akari
-
Die Informationen sind etwas dürftig, aber ich schätze mal, da soll ein Z-Buffer übergeben werden (wegen dem Namen und Typen der Variablen und der Anwendung der Funktion).
Das ist typischerweise ein zweidimensionales Feld mit der Größe X*Y, also in Deinem FallXMaxPoint*YMaxPoint.
Die Suchmaschine Deiner Wahl kann Dir mehr über Z-Buffering sagen.
-
Das es ein 2 dimensonales array ist hab ich mir schon gedacht.
Wenn es wirklich dieser Z-Buffer ist, wie bekomme ich dann aus einem Z wert den x und y wert raus? das hängt doch davon ab in welchem winkel die z achse ist, oder nicht!?
Mit den dürftigen informationen tut mir leid, aber ich hab leider nicht mehr.

-
JBOpael schrieb:
Das es ein 2 dimensonales array ist hab ich mir schon gedacht.
Wenn es wirklich dieser Z-Buffer ist, wie bekomme ich dann aus einem Z wert den x und y wert raus? das hängt doch davon ab in welchem winkel die z achse ist, oder nicht!?
Mit den dürftigen informationen tut mir leid, aber ich hab leider nicht mehr.

Wenn ich Dich richtig verstanden habe, ist das doch irgendein Widget zum Zeichnen von 3D-Graphen, oder?
Ich schätze mal, dann musst Du nur einen ausreichend großen Buffer übergeben, mit dem das Widget intern arbeiten kann. Die X- und Y-Werte solltest Du eigentlich haben. Die willst Du doch zeichnen, oder?
Vielleicht würde noch es noch helfen, wenn Du uns sagest, wo Du die Komponente runtergeladen hast. Da wird doch sicherlich eine Doku dazu gehören.
-
Die Komponente ist von Torry und heißt BCB6 Griffon’s 3D Graph Component v.0.9.1 hier mal der Link http://www.torry.net/pages.php?id=195
Da es sich um einen 3d Graphen handelt muss ich dem doch irgendwie die x, y und z werte übergeben. Deswegen wird ein Leerer Puffer für z nichts bringen.
-
Das beigelegte Beispielprogramm macht aber genau das, was ich gesagt habe:
Einen leeren Buffer für Z anlegen und dann X- und Y setzen.
Ich würde an Deiner Stelle allerdings nach besseren Alternativen suchen. Mit der nichtexistenten Doku ist das Teil quasi unbrauchbar.
-
was macht das denn für einen sinn einem 3d gatter nur 2 richtungen zu geben? und den rest denkt sich die komponente dann!?

Gegen eine Alternative hätte ich nichts gegen, aber ich hab auf allen Internet seiten die in der FAQ angegeben sind nach entsprechenden komponenten gesucht, google spuckt mir auch nichts aus und sonst hab ich nichts besseres gefunden.
Ich bin für jeden ratschlag offen. Es wär mir auch egal wenn es es keine freeware komponente ist.
Am Liebsten wär mir eine komponente der ich nur die x,y,z werte geben muss und ich dann ein schönes bild bekomme das ich mir der Maus in alle richtungen drehen kann.

-
JBOpael schrieb:
was macht das denn für einen sinn einem 3d gatter nur 2 richtungen zu geben? und den rest denkt sich die komponente dann!?

Guck Dir mal Excel an. Da gibts diese Pseudo-3D-Teile auch massenweise. Wo der Sinn davon ist... Keine Ahnung. Vermutlich die Optik.
Muss es denn unbedingt Borland sein?
Für Qt und gtk gibt es das, was Du suchst nämlich.
-
mit pseudo 3d meinst du sicherlich das ein 2d objekt 3 dimensional dargestellt wird. (also aus rechteck mach quader) aber das beispiel zeigt mir etwas anderes. sobald ich in dem beispiel einen wert ins extreme bringe, wird dieser auch als piek in der mitte angezeigt.