Vektoren und Winkel < Lin. Algebra/Vektor < Oberstufe < Schule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:01 Mo 14.02.2005 | Autor: | Robby82 |
Hi Leute!
Ich habe nicht viel Ahnung von Vektoren, aber ich probiere momentan etwas rum. Also haut am besten gleich feste drauf, wenn ich Mist rede =)
Folgendes Problem:
Ich habe einen Punkt (x,y) der eine Richtung definiert (Ein Mathematiker sagt jetzt wahrscheinlich "Vektor" oder ? )
Ich arbeite in einem umgedrehten Koordinatensystem das den Bildschirmkoordinaten enspricht. Also 0,0 ist oben links.
Was ich benötige, ist die Richtung meines Vektors als Winkel. Also bei
x = 0, y = 1 = 180°
oder
x = 1, y = 0 = 90°
Kann man das irgendwie ausrechnen ?
Geht das dann auch umgekehrt ?
180° = (x = 0, y = 1) ?
Wäre dankbar für etwas Aufklärung und Hilfe =)
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Hallo,
ein Punkt (x,y) im Koordinatensystem ist eigentlich nur ein Punkt.
Er gibt noch keine Aussage über die Richtung.
Häufig wird aber ein Ortsvektor definiert, der nichts anderes ist,
als ein Vektor, dargestellt durch einen Pfeil, der beim Ursprung startet
und auf direktem Weg zu dem Punkt geht.
Im ersten Bild
[Dateianhang nicht öffentlich]
kannst du dir angucken wie das aussieht.
Ich habe dabei den Punkt (2,3) gewählt, der
Vektor heißt: [mm] \overrightarrow{p} [/mm] = [mm] \vektor{2 \\ 3}
[/mm]
In Bezug auf die x-Achse kannst du den Winkel jetzt mit
sin und cos ausrechnen:
Ist [mm] \alpha [/mm] der Winkel zwischen dem Vektor und der x-Achse,
[mm] $\sin(\alpha) =\bruch{y}{\mbox{Länge des Vektors}}$.
[/mm]
oder was dasselbe Ergebnis ergibt:
[mm] $\cos(\alpha) [/mm] = [mm] \bruch{x}{\mbox{Länge des Vektors}}$
[/mm]
Die Länge des Vektors kann man ja mit: [mm] $x^2 [/mm] + [mm] y^2 [/mm] = [mm] \mbox{Länge}^2$ [/mm] berechnen
Ein bisschen unklar ist mir das mit den 180° geblieben.
Wenn ich mir ein Koordinatensystem mit dem Ursprung (0,0) oben links,
dann geht nach rechts die x - Achse und nach unten die y - Achse?
Dann ist der maximale Winkel in Bezug auf den Ursprung ja 90°.
Einen größeren Winkel kannst du haben wenn du den Winkel zwischen
zwei Vektoren bestimmen möchtest, aber das schien mir eigentlich nicht
der Fall zu sein.
Wenn dir das nicht reicht, kannst du ja deine Frage nochmal konkretisieren.
Gruß
marthasmith
Dateianhänge: Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 14:01 Mo 14.02.2005 | Autor: | Robby82 |
Danke schonmal für die schnelle Antwort.
Vielleicht habe ich mich schlecht ausgedrückt =)
Also folgendes Problem:
Ich entwickel ein Computerspiel. Auf dem Spielfeld sind zwei Figuren. Ich kenne folgende Daten der Figuren: Position (X/Y) und Rotation.
Ich möchte jetzt, das sich Figur1 in Richtung von Figur2 dreht.
Siehe Bild:
[Dateianhang nicht öffentlich]
Wie kann ich das realiseren ?
Mein erster Ansatz war es, die Positionen der zwei Figuren als Vektor zu interpretieren. Anschliessend erstelle ich einen dritten Vektor:
V3 = (Figur2.Position - Figur1.Position)
Dann war meine Idee, einfach den "Eigenwinkel" dieses Vektors zu berechnen, und den Rotationswert von Figur1 an diesen anzupassen.
Den "Eigenwinkel" würde ich das so interpretieren:
(0, 1) - Figur2 steht direkt unter Figur1 = 180°
(0, -1) - Figur2 steht direkt über Figur1 = 0°
Der Rotationswert wäre also quasi fix an den Himmelsrichtungen orientiert. 0° = Nord, 180° = Süd, 225° = Süd-West usw usf.
Hast du eine bessere Idee ? (Ist vermutlich sowieso totaler Quatsch, was ich hier schreibe *ggg* )
Dateianhänge: Anhang Nr. 1 (Typ: gif) [nicht öffentlich]
|
|
|
|
|
Hallo,
jetzt kapiere ich :o)
Im Grunde funktioniert es so wie du sagst:
Mit
[mm] \vektor{230 \\ 70} [/mm] - [mm] \vektor{65 \\ 230} [/mm] = [mm] \vektor{165 \\ -160}
[/mm]
Das ist ja gerade der Vektor der von dem schwarzen zu dem roten Punkt geht.
Nun kannst du dir eine Bezugsachse suchen, z.B. die obere horizontale Achse
und kannst nun den Winkel berechnen (z.B. von der horizontalen Achse gegen
den Uhrzeigersinn bis zu dem Vektor).
Nehmen wir an, dass der Winkel 225° sei und der schwarze Punkt derzeit
eine Orientierung von 90° hat (er guckt nach oben).
Dann muss er sich noch um 225 ° - 90° = 135° gegen den Uhrzeigersinn
drehen !?
Leider muss ich jetzt los, ich gucke mir das heute abend oder morgen nochmal an.
Leider habe ich im obigen Beispiel den horizontalen Wert an die
zweite Komponente geschrieben, also die beiden Achsen x , y vertauscht.
Aber das ändert im Grunde nichts an der Betrachtung:
Nehmen wir als Bezugsachse die horizontale Achse, ein Vektor der Länge
1 ist einfach (0,1) - die Länge von Vektoren im 2 dimensionalen kann
man einfach über [mm] \wurzel{x^2+y^2} [/mm] berechnen.
Und nun nimmt man den zweiten Vektor hinzu, und bestimmt den Winkel
zwischen den beiden Vektoren, d.h.
[mm] Winkel(\vektor{165 \\ -160},\vektor{0,1}).
[/mm]
Dafür gibt es eine Formel:
Mit der Bezeichung : a = [mm] \vektor{165 \\ -160}
[/mm]
b = [mm] \vektor{0,1}
[/mm]
und außerdem a = [mm] \vektor{a_1 \\ a_2}
[/mm]
b = [mm] \vektor{b_1 \\ b_2}
[/mm]
Länge(a) = [mm] \wurzel{165^2+(-160)^2} [/mm] = 229.8369
Länge(b) = 1
[mm] cos(\alpha) [/mm] = [mm] \bruch{a_1*b_1+a_2*b_2}{Länge(a)*Länge(b)}
[/mm]
[mm] cos(\alpha) [/mm] = [mm] \bruch{(165*0 + (-160)*1)}{229.8369}
[/mm]
[mm] cos(\alpha) [/mm] = [mm] \bruch{-160}{229.8369}
[/mm]
alpha = 134.1186°
Und das alpha bekommt man raus, wenn man auf dem Taschenrechner
die shift Taste und dann den cosinus drückt.
Leider berechnet man immer den Winkel, der kleiner ist, d.h. es kommt
134.1186° raus, obwohl eigentlich 360° - 134.1186 gesucht ist.
Ich glaube es geht nicht anders, als dass du eine Fallunterscheidung
einbaust, dass ist ja aber schnell gemacht, denn es gibt ja nur vier Fälle:
1. zweiter Vektor geht nach rechts oben --> Winkel ist kleiner als 180° kein Handlungsbedarf
2. zweiter Vektor geht nach links oben --> Winkel ist kleiner als 180°, kein
Handlungsbedarf
3. zweiter Vektor geht nach links unten --> gesuchter Winkel ist zwischen 180° bis 225°, es wird aber ein Winkel zwischen -90° bis - 180° ausgegeben. --> 360° + gefundenen Winkel
4. zweiter Vektor geht nach rechts unten --> gesuchter Winkel zwischen
225° bis 360° , ausgegeben wird ein Vektor zwischen 0° bis - 90°
--> 360° + gefundenen Winkel
Soweit klar?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 08:57 Di 15.02.2005 | Autor: | Robby82 |
Danke, das hat super funktioniert!
Man muss wie gesagt nur abhängig von der Position der zwei Punkte den Winkel nochmal "nachbearbeiten". Aber es klappt sehr gut damit!
Vielen Dank für deine Hilfe!
|
|
|
|