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
Messdaten im 3 d-Koordinatensystem(Isometrisch) darstellen
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
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...
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
-
- Beiträge: 6267
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
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: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...
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.
- 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:
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
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