Hallo zusammen, ich weiß nicht ob das Thema in dieses Forum rein passt, aber ich probier es mal. Ich schreibe mir gerade auf Basis von C# und Helix3D eine Anwendung, die ein Model eines Industrieroboters einließt und darstellt. Dieses Model will ich dann mit Hilfe von Slidern etc. um seine Achsen bewegen können (siehe Bild "Anwendung). Jetzt möchte ich gerne das Koordinatenkreuz, welches man auf dem Bild sieht, bei einer Bewegung der Arme immer an der selben Stelle halten. Dafür habe ich die Position im Raum bestimmt. Das sind die Koordinaten (25, -630, 1070). Für die neue Position benötige ich dann eine entsprechende Drehmatrix für die jeweilige Achse. Wenn ich den Roboter also um seine Base drehen will, wäre das die z-Achse (gelber Pfeil), mit der Drehmatrix
Für die Drehung um die z-Achse klappt das schon wunderbar. Sobald ich den Roboterarm drehe, wandert das Koordinatenkreuz mit. Wie mache ich das jetzt, wenn ich den Arm schwenke? Das wäre ja eine Rotation um die x-Achse (roter Pfeil). Wenn ich da dann auch wieder die Drehmatrix aufstelle
und diese Matrix mit meinem, um einen bestimmten Winkel verschobenen Punkt, (25, -630, 1070) multipliziere, erhalte ich einen Punkt der an einer falschen Stelle liegt (siehe Bild "Falsche Position). Wo steckt in der Überlegung der Fehler? In beiden Fällen ändere ich erst einmal nur eine Achse und nicht beide gleichzeitig. Vielen Dank für die Hilfe!