Rotation Punkt auf Kreis < Vektoren < Lin. Algebra/Vektor < Oberstufe < Schule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 16:49 Sa 10.10.2009 | Autor: | SkiD |
Aufgabe | Koordinate der Position der Kamera = [1|1]
Koordinate des Blickpunktes der Kamera = [1|5]
Bewegungsfaktor für den neuen Punkte = 1.2 |
Hallo zusammen,
ich habe derzeit ein Problem, was sich wie folgt äußert:
Eine Kamera hat eine Koordinate (x, y) welche die aktuelle Position beschreibt, desweiteren besitzt diese einen Blickpunkt (x, y).
Wenn jetzt bestimmte Events (wie bspw. das bewegen der Maus) eintreten, soll der Blickpunkt um einen bestimmten Faktor um die Kamerakoordinate rotieren.
D.h. die Kamera schaut dann bspw. etwas weiter nach rechts oder links, je nach größe des Faktors.
Mein Problem ist hier die Umsetzung der Berechnung.
Ich habe zwar eine Idee, jedoch bin ich mir von der Berechnung selbst her nicht sicher, deswegen bräuchte ich da etwas Unterstützung um das alles wieder ins Gedächtnis zurück zu holen.
Was ich mir gedacht habe ist folgendes:
Standpunkt der Kamera ist [mm] \vec{eye} [/mm] und der Blickpunkt ist [mm] \vec{target}.
[/mm]
[mm] \vec{eye} [/mm] bildet den Mittelpunkt des Rotationskreises.
Der Richtungsvektor, d.h. der Vektor von [mm] \vec{eye} [/mm] nach [mm] \vec{target}, [/mm] wir mit [mm] \vec{target} [/mm] - [mm] \vec{eye} [/mm] = [mm] \vec{direction} [/mm] bestimmt. (soweit richtig?)
Die Länge des Richtungsvektors ist der Betrag dessen, d.h. [mm] |\vec{direction}| [/mm] = [mm] \wurzel{d1^{2} + d2^{2} + ... + dn^{2}}.
[/mm]
Um den neuen Punkt auf den Kreis zu bestimmen, müsste ich jetzt den Winkel berechnen, der zwischen den neuen Punkt und den jetzigen Punkt auf dem Kreis liegt, das geht jedoch nicht, da ich den neuen Punkt ja eben gerade Suche.
So wirklich komme ich da alleine nicht auf die Lösung, wäre deswegen um Hilfe dankbar!
Ich habe oben mal ein Beispiel angegeben, welches evtl. hilfreich bei Erklärungen sein könnte!
Liebe Grüße,
SkiD.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
> Koordinate der Position der Kamera = [1|1]
> Koordinate des Blickpunktes der Kamera = [1|5]
>
> Bewegungsfaktor für den neuen Punkte = 1.2
> Hallo zusammen,
>
> ich habe derzeit ein Problem, was sich wie folgt äußert:
>
> Eine Kamera hat eine Koordinate (x, y) welche die aktuelle
> Position beschreibt, desweiteren besitzt diese einen
> Blickpunkt (x, y).
>
> Wenn jetzt bestimmte Events (wie bspw. das bewegen der
> Maus) eintreten, soll der Blickpunkt um einen bestimmten
> Faktor um die Kamerakoordinate rotieren.
>
> D.h. die Kamera schaut dann bspw. etwas weiter nach rechts
> oder links, je nach größe des Faktors.
>
> Mein Problem ist hier die Umsetzung der Berechnung.
> Ich habe zwar eine Idee, jedoch bin ich mir von der
> Berechnung selbst her nicht sicher, deswegen bräuchte ich
> da etwas Unterstützung um das alles wieder ins Gedächtnis
> zurück zu holen.
>
> Was ich mir gedacht habe ist folgendes:
>
> Standpunkt der Kamera ist [mm]\vec{eye}[/mm] und der Blickpunkt ist
> [mm]\vec{target}.[/mm]
> [mm]\vec{eye}[/mm] bildet den Mittelpunkt des Rotationskreises.
>
> Der Richtungsvektor, d.h. der Vektor von [mm]\vec{eye}[/mm] nach
> [mm]\vec{target},[/mm] wir mit [mm]\vec{target}[/mm] - [mm]\vec{eye}[/mm] =
> [mm]\vec{direction}[/mm] bestimmt. (soweit richtig?)
>
> Die Länge des Richtungsvektors ist der Betrag dessen, d.h.
> [mm]|\vec{direction}|[/mm] = [mm]\wurzel{d1^{2} + d2^{2} + ... + dn^{2}}.[/mm]
>
> Um den neuen Punkt auf den Kreis zu bestimmen, müsste ich
> jetzt den Winkel berechnen, der zwischen den neuen Punkt
> und den jetzigen Punkt auf dem Kreis liegt, das geht jedoch
> nicht, da ich den neuen Punkt ja eben gerade Suche.
>
> So wirklich komme ich da alleine nicht auf die Lösung,
> wäre deswegen um Hilfe dankbar!
>
> Ich habe oben mal ein Beispiel angegeben, welches evtl.
> hilfreich bei Erklärungen sein könnte!
>
> Liebe Grüße,
> SkiD.
Hallo SkiD,
nach deiner Beschreibung ist mir die Situation nur zu
einem kleinen Teil klar.
Für Position (eye) und Blickpunkt (target) gibst du zuerst
nur zwei Koordinaten x,y an, später aber für den Richtungs-
vektor n Koordinaten.
Spielt sich nun das Ganze im [mm] \IR^2, [/mm] im [mm] \IR^3 [/mm] oder in einem
[mm] \IR^n [/mm] (???) ab ?
Was soll sich auf einem Kreis bewegen ? Die Kamera (eye),
der Blickpunkt (target) oder was ? Falls sich das ganze im [mm] \IR^3
[/mm]
abspielt, was ist die Richtung der Kreisachse ? Und was ist der
Kreisradius ?
Fragen über Fragen. Vielleicht hilft es, wenn du beschreibst,
was du denn wirklich hier modellieren willst.
LG Al-Chw.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:52 Sa 10.10.2009 | Autor: | SkiD |
Ja okay dann erkläre ich das etwas genauer:
Wie gesagt, ich habe eine Kamera mit einer X- und Y-Koordinate.
Diese Kamera schaut _immer_ in Richtung Blickpunkt, also das Target, welches wieder eine X- und Y-Koordinate besitzt!
Wenn sich die Koordinate von Target jetzt ändert, aktualisiert sich demanch die Richtung in die die Kamera blickt.
Die Sache ist folgende:
Über die Mausbewegung wird ein Faktor ermittelt, welcher beschriebt in wie weit sich die Target-Koordinate sich um die Eye-Koordinate (also die Position von der Kamera) dreht.
D.h. wir befinden uns im [mm] \IR2.
[/mm]
Auf dem Kreis bewegt sich lediglich nur die Target-Koordinate, da diese das umblicken, auf einer bestimmten Position, im Raum möglich macht.
HIER eine Ansicht, wie ich das gemeint habe.
Was den Vektor angeht, so kann man auch die Koordinaten x und y auch einzeln berechnen, bzw. die neue Position für x- und y.
Vektoren hätten sich eben angeboten :)
Liebe Grüße,
SkiD.
|
|
|
|
|
Hallo SkiD,
nach deiner Mitteilung scheint es einfacher als ich
erst dachte.
Ich nehme mal an, die Kamera ist an einem festen
Ort (oder nicht ?) und sie hat stets eine bestimmte
Blickrichtung, die du per Maus verändern kannst.
Dann nimmst du doch am besten einen Winkel, um
die jeweilige Blickrichtung zu definieren !
Es sei [mm] (x_K/y_K) [/mm] die Position der Kamera und [mm] (x_T/y_T)
[/mm]
die des Targets.
Setzen wir z.B. den Winkel [mm] \alpha [/mm] gleich Null, falls die
Kamera genau in x-Richtung gerichtet ist, so haben
wir die Formeln
[mm] $sin(\alpha)\ [/mm] =\ [mm] \frac{y_T-y_K}{d}$
[/mm]
[mm] $cos(\alpha)\ [/mm] =\ [mm] \frac{x_T-x_K}{d}$
[/mm]
[mm] $tan(\alpha)\ [/mm] =\ [mm] \frac{y_T-y_K}{x_T-x_K}$ [/mm] (sofern [mm] x_T\not=x_K)
[/mm]
wobei $d\ =\ [mm] |\overrightarrow{KT}|\ [/mm] =\ [mm] \sqrt{(x_T-x_K)^2+(y_T-y_K)^2}$
[/mm]
LG Al-Chw.
|
|
|
|