Verfasst am: 18.02.2010, 21:06
Titel: 3D cube - Rotation
Hallo,
Im folgenden Programm habe ich einen dreidimensionalen Würfel mit der Funktion multifaceted Patches in MATLAB generiert. Der Würfel besteht aus sechs Flächen und acht Kanten die ausgehend von einem festgelegtem Koordinatenmittelpunkt aufgespannt werden [x,y,z,].
Über eine Eingabe werden in der späteren Anwendung die neuen Koordinaten geliefert (normiert auf Einheitskreis -1 bis +1), anschließend werden die Lagewinkel (yaw-, roll-, nickwinkel) im Raum bestimmt und über eine Rotationsmatrix der Würfel entsprechend der Drehrichtung ausgelenkt.
Derzeit wird die Rotation über eine for Schleife realisiert, die eine Drehung des Würfels um 90° ermöglicht.
Das funktioniert soweit sehr gut bis auf ein Paar (kleine) Probleme:
(1)Die Komplette Drehung um 360° läuft nicht richtig z.B. bei der Drehung um die Y Achse rollte sich der Würfel nach 90° über die orthogonal liegende X Achse ab und bleibt in einer undefinierten Position stehen.
(2) Außerdem bekomme ich mit der von mir verwendeten Rotationsmatrix nur eine Drehrichtung um die X Achse(Nick) oder Y Achse(Roll) realisiert. D.h. egal welche Koordinatenwerte ich eingebe der Vektor läuft immer in eine Richtung. Siehe dazu im Quelltext Linksdrehung oder Rechtsdrehung.
Ich stelle den Quelltext hier zur Verfügung, Version: MATLAB R2007b
und bedanke mich im Voraus über hilfreichen Input.
Code:
% Drehachsenkoordinaten Cube
for h=0.01:0.01:1 display('next step')
d=input('prompt')
xyz=[0.01,0.01,1];
% ModelkoordinatenSystem X Y Z Achse line([-55],[0.010.01],[11],'linewidth',1,'color',[0,0,0]);
line([0.010.01],[-55],[11],'linewidth',1,'color',[0,0,0]);
line([0.010.01],[0.010.01],[-55],'linewidth',1,'color',[0,0,0]);
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.