Verfasst am: 24.10.2012, 11:54
Titel: 3D-Ploten von einer Punkte-Wolke
Juten Tag,
ich hätte mal wieder eine Frage und vllt. hat von euch da einer ja ne Antwort drauf
Also, ich habe folgendes Problem: Ich möchte gerne (immer noch) eine Kohlehalde bei einem Kohlekraftwerk visualisieren (hatte die Thematik vorn paar wochen schonmal angesprochen). Mittlerweile hab ich dafür ein nettes Programm in Java was mir die entsprechenden Daten dazu ausrechnet. Um das ganze zu visualisieren, sage ich dem Java-Programm am Ende er soll um alles was vorhanden ist eine Art von Kasten legen und dort drinnen dann eine gewisse Anzahl von Zufallsdaten-punkten erzeugen. Das Java-Programm schaut dann ob an diesen Stellen Kohle vorliegt und wenn ja um welche es sich handelt. Mit dieser Information werden dann die Datenpunkte dann in einer Text-Datei abgespeichert. Diese Lasse ich dann anschließend von Matlab auslesen und je nachdem um welche Kohle es sich handelt soll er den Punkt in einer anderen Farbe zeichnen.
Soweit so gut, das habe ich auch alles hinbekommen, Problem ist nur, um die Kohlehalde besser darstellen zu können muss ich sehr viele Punkte erzeugen die dann der entsprechenden Form sehr nahe kommen. Momentan mache ich das ganze mit 5000 Punkten, besser wären zum beispiel 50000. Aber bereits bei 5000 lässt sich der Plot nicht mehr wirklich in der 3D-Ansicht verändern. Momentan springe ich nur zwischen den einzelnen 2D-Achsen hin und her. Ich würde aber gerne das gesamte Bild flüssig drehen. Ist das überhaupt möglich bei sovielen Punkten?? Oder sollte ich wohl möglich um diese Punkte-Wolken eine Oberfläche ziehen?? Wenn ja, wie geht das genau mit der Oberfläche?
Hier mal mein Programmcode für das einlesen der Datenpunkte:
Code:
%Programm dient zum Auslesen von Datenpunkten und zur
%entsprechenden Visualisierung der Datenpunkte
clear
comma2point ('AUSGABE.txt') [x,y,z,i]=textread('AUSGABE_Modified.txt','%f %f %f %f');
%Das Programm comma2point hab ich mir hier aus dem Forum geholt
[zeile1,spalte1]=find(i==1);
[zeile2,spalte2]=find(i==2);
[zeile3,spalte3]=find(i==3);
[zeile4,spalte4]=find(i==4);
[zeile5,spalte5]=find(i==5);
[zeile6,spalte6]=find(i==6);
o=zeile1;
p=zeile2;
q=zeile3;
t=zeile4;
u=zeile5;
w=zeile6;
figure hold on
grid on
xlim([060]) ylim([060]) zlim([060]) for a=1:sum(i(:)==1)
Ist vllt alles etwas umständlich geschrieben aber so läuft es erstmal, allerdings wie gesagt, ich kann so bei zbsp 5000 Datenpunkten den Plot nicht mehr 3 dimensional drehen.
Hab auch nochmal ne Word-datei in Anhang gehaun damit man sich mal das Ergebnis anlunzen kann. Man wird dann feststellen, dass die Einzelnen Kegel und dere Überlagerungen besser erkennen kann wenn man mehr Punkte erzeugt.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.