ich habe x,y,z Koordinaten einer Vibrationsmessung. Diese soll ich nun in Matlab durch einen Punkt darstellen.
Der Punkt spiegelt sozusagen die Vibrationen an meinem Messpunkt wieder.
Den Punkt stelle ich bisher so dar (x,y,z wurden aus einer Datei eingelesen):
Das Problem ist, dass der Bildschirm natürlich auch nur 2 dimensional ist. Also möchte ich, dass der Punkt größer wird wenn er "näher" an den Betrachter kommt und "kleiner" wird wenn er weiter weg geht.
Die Position des Betrachters bekomme ich ja über den Azimuth und den Elevator raus
Da ich auch die 3 Koordinaten des Punktes habe, kann ich den Abstand zwischen Betrachter und Punkt ausrechnen. Nun muss ich nur noch die Größe des Punktes in Abhängigkeit des Abstandes verändern. Und da habe ich keine Ahnung wie.
Wie wärse wenn Du nicht mit Punkten, sondern mit einem 3D-Kugel arbeitest... Dessen Größe wird dann von MATLAB berechnet, sobald Du dem Objekt näherst oder entfernst.
1. es ist extrem langsam, es dauert schon 20 Sekunden bis er das "Figure 1" Fenster öffnet bzw. Matlab hängt sich auf. Nach ner halben Ewigkeit kommt wird dann das "Figure 1" Fenster sichtbar und es wurden schon alle Kugeln gesetzt. Vll hab ich auch was falsch gemacht keine Ahnung. Komisch ist auch, dass wenn ich das Schritt für Schritt im Debug durchgehe alles passt.
2. Wie kann ich die alte Kugel löschen wenn die neue angezeigt wird?
ich hatte mal eine Ähnliche Aufgabe und musste die Bewegung eines Sensor darstellen mit 12000 Messpunkten, bei denen ich jedoch nur jeden 100. plotten musste.
Ich bin die Sache etwas anders angegangen und zwar mit Hilfe eines Patches und dem Befehl
.
Den Patch habe ich in Abhängigkeit eine Punktes (Mittelpkt) erstellt und anschließend in einer Schleife den Mittelpunkt entsprechend der Messpunkte (x,y,z) geändert.
Mit
kannst du dann nach getframe z.B. den aktuellen Patch(deine Kugel auf der Position deines Messwertes) unsichtbar machen ehe du sie überschreibst. Alternativ kannst du den Patch auch löschen.
Vllt. kannst du davon was versuchen.
Habt Ihr schonm mal überlegt, die Daten als AVI zu exportieren? Dann lässt man die Kiste einmal rödeln und kann es danach immer wieder anschauen. AVI-Herstellung is in der Matlab Hilfe recht gut beschrieben. Wenn es nicht tut (manchmal gibt es Renderingprobleme wenn das Figure nicht Norm-grösse hat), gibt es noch die lowcost Variante:
Bilder der Reihe nach erzeugen und mit saveas als bild_00001.jpg abspeichern (führende Nullen nicht vergessen!) und dann mittels freeware converter von jpg nach avi umwandeln.
_________________
---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Einstellungen und Berechtigungen
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.