Messdaten im 3 d-Koordinatensystem(Isometrisch) darstellen

Probleme beim Erstellen von 3D-Modellen und Texturen, keine Ahnung womit man Musik macht? Dies ist dein Forum.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Messdaten im 3 d-Koordinatensystem(Isometrisch) darstellen

Beitrag 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
PB 4 Final
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag 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...
!UD2
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von NicTheQuick »

Ich hätte da auch noch was, falls es interessiert:
3D-Koordinaten in 2D-Koordinaten umrechnen
Bild
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

Beitrag 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
PB 4 Final
Antworten