/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
rotation af vektor omkring anden vektor
Fra : Desilva


Dato : 18-06-02 14:20

Det her er ret basalt, og jeg har da bestemt gjort det før... og nu glemt
det.. men jeg kan ikke finde løsningen i formelsamlingerne eller på nettet,
så lad mig spørgre her.

Hvordan er det nu lige man roterer en vektor omkring en anden vilkårlig
vektor?
Ex roter (1,1,0) 90 grader omkring (1,0,0) og få (1,0,1).
Her roteres omkring x-aksen, men hvad nu hvis vektoren var (1,4,8)?



 
 
Filip Larsen (18-06-2002)
Kommentar
Fra : Filip Larsen


Dato : 18-06-02 16:41

Desilva skrev

> Hvordan er det nu lige man roterer en vektor omkring en anden vilkårlig
> vektor?

Hvis du skal rotere vektor V vinklen t omkring vektor U = [u0,u1,u2]^T, så
kan det gøres vektorielt som

W = V + sin(t)(U x V) + (1-cos(t))(U x (U x V)).

Hvis du hellere vil have en rotation-matrice, så skulle den kunne skrives
som

R = I + sin(t) S + (1-cos(t)) S^2,

hvor I er identitetsmatricen og matrix S er "U x" givet ved

| 0 -u2 u1 |
S = | u2 0 -u0 |.
|-u1 u0 0 |

Med R fås rotationen af V som

W = RV



Med venlig hilsen,
--
Filip Larsen <filip.larsen@mail.dk>



Desilva (18-06-2002)
Kommentar
Fra : Desilva


Dato : 18-06-02 18:22

> Hvis du skal rotere vektor V vinklen t omkring vektor U = [u0,u1,u2]^T, så
> kan det gøres vektorielt som
>
> W = V + sin(t)(U x V) + (1-cos(t))(U x (U x V)).

I mit eksempel fra før med [1,1,0] roteret 90 grader omkring [1,0,0] får jeg
UxV=[0,0,1], så
W=[1,1,0] + 1*[0,0,1]+(1-0*( [1,0,0]x[0,0,1]))
W=[1,1,1] +(1-0)
W=[2,2,2];

Lige bortset fra y komponenten så kunne det godt være resultatet, men det
skulle jo være [a,a,0]
Er det mig der overser et eller andet her?



>
> Hvis du hellere vil have en rotation-matrice, så skulle den kunne skrives
> som
>
> R = I + sin(t) S + (1-cos(t)) S^2,
>
> hvor I er identitetsmatricen og matrix S er "U x" givet ved
>
> | 0 -u2 u1 |
> S = | u2 0 -u0 |.
> |-u1 u0 0 |
>
> Med R fås rotationen af V som
>
> W = RV
>
>
>
> Med venlig hilsen,
> --
> Filip Larsen <filip.larsen@mail.dk>
>
>



Filip Larsen (19-06-2002)
Kommentar
Fra : Filip Larsen


Dato : 19-06-02 07:43

Jeg skrev

> > Hvis du skal rotere vektor V vinklen t omkring vektor U = [u0,u1,u2]^T,

> > kan det gøres vektorielt som
> >
> > W = V + sin(t)(U x V) + (1-cos(t))(U x (U x V)).

Og Desilva svarede

> I mit eksempel fra før med [1,1,0] roteret 90 grader omkring [1,0,0] får
jeg
> UxV=[0,0,1], så
> W=[1,1,0] + 1*[0,0,1]+(1-0*( [1,0,0]x[0,0,1]))
> W=[1,1,1] +(1-0)
> W=[2,2,2];

Jeg ved ikke lige hvad du laver i næstsidste linie, men jeg får, at Ux(UxV)
er (0,-1,0) og dermed W = (1,0,1) hvilket passer med en geometrisk
betragtning.

> Lige bortset fra y komponenten så kunne det godt være resultatet, men det
> skulle jo være [a,a,0]

Jeg kan ikke se hvordan du er nået frem til dette result, men umiddelbart
ser det forkert ud.


Bemærk: jeg glemte at skrive, at U selvfølgelig skal være en enhedvektor.
Det er den også i dit eksempel, men generelt skal man huske at normere U
hvis denne kan være en vilkårlig vektor.


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>



Desilva (19-06-2002)
Kommentar
Fra : Desilva


Dato : 19-06-02 18:05

> > UxV=[0,0,1], så
> > W=[1,1,0] + 1*[0,0,1]+(1-0*( [1,0,0]x[0,0,1]))
> > W=[1,1,1] +(1-0)
> > W=[2,2,2];
>
> Jeg ved ikke lige hvad du laver i næstsidste linie, men jeg får, at
Ux(UxV)
> er (0,-1,0) og dermed W = (1,0,1) hvilket passer med en geometrisk
> betragtning.

Jeg laver [1,1,0] + 1*[0,0,1] til [1,1,1] og 1-0*( [1,0,0]x[0,0,1]) til 1-0

Og du har naturligvis ret i at resultatet ikke er [a,a,0] men [a,0,a]. Jeg
sad og rodede frygtelig rundt i det. Beklager :-/




Filip Larsen (19-06-2002)
Kommentar
Fra : Filip Larsen


Dato : 19-06-02 19:53

Desilva skrev

> Jeg laver [1,1,0] + 1*[0,0,1] til [1,1,1] og 1-0*( [1,0,0]x[0,0,1]) til
1-0

Den sidste del skal være (1-0)*[1,0,0]x[0,0,1] som er lig [0,-1,0]. Bemærk
parentesen omkring "1-0".


Mvh,
--
Filip Larsen <filip.larsen@mail.dk>



Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste