Seite 1 von 1

Messdaten im 3 d-Koordinatensystem(Isometrisch) darstellen

Verfasst: 02.12.2008 23:50
von HoDam
Hallo Forumler,

ich möchte eine neues Projekt beginnen:

erfasste Meßdaten (x,y,z ) möchte ich gerne in 3-D Koordinatensystemen darstellen( am liebsten noch Isometrisch, so das ich mir die Meßdatenwolke von x beliebiger Positionen anschauen kann.
Kann mir jemand Tipps über gute Links geben (kein Wikipedia bitte)
Mir geht es nicht um fertigen Code, sondern erst mal darum die Meßdatenwolke in jedem Freiheitsgrad drehen, verschieben zu können, Zoomfunktion.
Im Prinzip in einem 3-D Kordinatensystem (Betrachter von Aussen, Weltkordinaten ?) ein weiteres Koordinatensystem(Messdatenwolke, Nullpunkt frei bestimmen) zu integrieren
Wichtig dabei ist mir die Performance. Habe sowas schon mal mit Excel realisiert. Ist aber leider entsprechend langsam bei ca 4000 Messdaten

Später sollen dann Funktionen wie z.b. eine Hülle zu berechnen und darzustellen integriert werden . Mein Problem ist weniger die Mathematik dazu, sondern die Performance. Datenhandling.

Schon mal ein Dankeschön, weil ich mir ziemlich sichern bin, das ich hier gute Anworten bekommen werde :-)

Danke

Verfasst: 03.12.2008 09:21
von Froggerprogger
Hab leider grad nur 2 Minuten:
a) wie wäre es, eine vorhandene Lösung mit kostenpflichtiger Software a la Matlab, Maple & Co. zu nutzen? Dann hätteste außer mit der Darstellung auch mit komplexesten Berechnungen keine Probleme.
b) Zur Darstellung: OpenGL hat eine Funktionalität, da kann man "Punkte" im Raum zeichnen. Man übergibt nur Koordinaten (keine Polygone!) und es rendert dann an den Positionen einen Kreis mit definierbarem Durchmesser und Farbe. Die View kann man natürlich auch verändern, aber ob isometrisch geht, weiß ich nicht. Gehen tut normale perspektivische Sicht und orthogonal. Habe dazu noch JOGL-Codes rumfliegen.
c) Schreibe Deinen eigenen Renderer. Ist eigentlich gar nicht so schwierig und auch dafür habe ich Sourcen in PB rumfliegen. Man definiert nur Kameraposition, Sichtwinkel und damit die Darzustellende Bildschirmebene vor der Kamera. Jeder Punkt schneidet diese und wird dann gemalt, ggf. mittels eines Z-Buffer. Halb so wild.
Kann erst Freitag wieder reinschauen, also so long...

Verfasst: 03.12.2008 10:44
von DarkDragon
Froggerprogger hat geschrieben:Hab leider grad nur 2 Minuten:
a) wie wäre es, eine vorhandene Lösung mit kostenpflichtiger Software a la Matlab, Maple & Co. zu nutzen? Dann hätteste außer mit der Darstellung auch mit komplexesten Berechnungen keine Probleme.
b) Zur Darstellung: OpenGL hat eine Funktionalität, da kann man "Punkte" im Raum zeichnen. Man übergibt nur Koordinaten (keine Polygone!) und es rendert dann an den Positionen einen Kreis mit definierbarem Durchmesser und Farbe. Die View kann man natürlich auch verändern, aber ob isometrisch geht, weiß ich nicht. Gehen tut normale perspektivische Sicht und orthogonal. Habe dazu noch JOGL-Codes rumfliegen.
c) Schreibe Deinen eigenen Renderer. Ist eigentlich gar nicht so schwierig und auch dafür habe ich Sourcen in PB rumfliegen. Man definiert nur Kameraposition, Sichtwinkel und damit die Darzustellende Bildschirmebene vor der Kamera. Jeder Punkt schneidet diese und wird dann gemalt, ggf. mittels eines Z-Buffer. Halb so wild.
Kann erst Freitag wieder reinschauen, also so long...
Zu b): Isometrisch geht ganz einfach indem du orthogonale Projektionsmatrizen verwendest. Es gibt auch noch etwas besseres als nur Punkte anzuzeigen: NURBS - Nobody Understands Rational B-Splines ... äh ... Non-Uniform Rational B-Splines. Die interpolieren auch gleich. Dafür hatte ich sogar ein PureBasic Tutorial:
http://web.archive.org/web/200503111043 ... php?tut=10

Verfasst: 03.12.2008 12:12
von NicTheQuick
Ich hätte da auch noch was, falls es interessiert:
3D-Koordinaten in 2D-Koordinaten umrechnen

Verfasst: 03.12.2008 20:28
von HoDam
erst einmal Dankeschön für die Antworten.

werde mir jetzt die Sachen mal näher ansehen.

Programme wie Matlab, etc sind super Werkzeuge, aber Ziel ist es die Grafikfunktionen in einem speziellen QS-Meßprogamm zu integrieren.
Hierbei handelt es sich um Spektralkurven aus den man dan die XYZ-Kordinaten (Lab bzw. LCh) berrechnet und dies sollen dann für unterschiedliche Fragestellungen grafisch aufbreitet werden. Und für den Endanwender alles auf Knopfdruck.

Ich werde berichten.

Grüße
HoDam