Hallo, ich stehe gerade etwas auf dem Schlauch. Ich möchte einen Vektor über 2 Winkel definieren. wenn beide Winkel 0° sind zeigt der Vektor genau in z-Richtung v = [0 0 1]; wenn er z.b. um 45° in x-Richtung gekippt wird erhalte ich v = [1/sqrt(2) 0 1/sqrt(2)] oder allgemein v = [sin(alpha) 0 cos(alpha)] aber wie kann ich die 2. Kippung (Winkel beta) dazurechnen (ohne dass sich der erste Winkle (wenn man den Vektor auf die jeweilige Ebene projeziert) ändert?
olli23 schrieb: > aber wie kann ich die 2. Kippung (Winkel beta) > dazurechnen (ohne dass sich der erste Winkle (wenn > man den Vektor auf die jeweilige Ebene projeziert) > ändert? ??? Meiner Meinung nach verwechselst Du den (Raum-)Winkel, den der Vektor gegen die Z-Achse hat, mit den Winkeln, die die Projektionen des Vektors (auf die X-Z-Ebene bzw. die Y-Z-Ebene) mit der Z-Achse haben. Die Winkel der Projektionen sind unabhängig (weil die Achsen orthogonal sind), aber der Winkel im Raum hängt natürlich von beiden Winkeln in der Ebene ab.
x' = x*cos(a) + y*sin(a) y' = y*cos(a) - x*sin(a) Wobei sich das Vorzeichen von sin ändert, wenn a einen anderen Rotationsinn haben soll (d.h. einfach a durch -a ersetzen). x'² + y'² = x² + y² ist auch einfach nachzurechnen wegen sin² + cos² = 1, d.h. die Projektion auf xy-Ebene hat unabhängig von a immer gleiche Länge.
:
Bearbeitet durch User
Ich verwende für sowas gerne Rotationsmatrizen: https://en.m.wikipedia.org/wiki/Rotation_matrix#In_three_dimensions Einfach den Vektor mit dem Matrixen für die Rotation multiplizieren. Oder in diesem fall einfach die Matrizen für eine Rotation um X achse und die um Y achse multiplizieren, und die 3te Spalte der resultierenden Matrix nehmen.
:
Bearbeitet durch User
aus z in x-Richtung kippen nennt man auch Drehung um die y-Achse, das wäre dein alpha, das naheliegende beta wäre dann die Drehung um die x-Achse. Meinst Du so? 1. So kannst Du aber nicht jeden beliebigen Vektor eindeutig beschreiben, willst Du ja vielleicht auch nicht. Sags ja nur. 2. olli23 schrieb: > aber wie kann ich die 2. Kippung (Winkel beta) dazurechnen (ohne dass > sich der erste Winkle (wenn man den Vektor auf die jeweilige Ebene > projeziert) ändert? natürlich gar nicht, wenn alpha und beta so gemeint sind, wie ich denke. Begründe doch mal, warum das gehen sollte? vlg Timm
olli23 schrieb: > aber wie kann ich die 2. Kippung (Winkel beta) dazurechnen (ohne dass > sich der erste Winkle (wenn man den Vektor auf die jeweilige Ebene > projeziert) ändert? Oh sorry, das habe ich überlesen. Um das ganze nochmal anders zu Formulieren, du willst, dass die Projektion der Linie auf die XZ und YZ ebene einen gewissen Winkel zu Z hat, und das die Linie im Raum normalisiert ist? Ungetestet:
1 | x1=cos(a) |
2 | z1=sin(a) |
3 | y2=cos(b) |
4 | z2=sin(b) |
5 | x3=x1 |
6 | y3=z1/z2*y2 |
7 | z3=z1 |
8 | d=sqrt(x3*x3+y3*y3+z3*z3) |
9 | x=x3/d |
10 | y=y3/d |
11 | z=z3/d |
Die Formel wird aber bei 90 grad winkeln nicht gehen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.