Translasjon grunnet rotasjon

Her kan du stille spørsmål vedrørende problemer og oppgaver i matematikk på høyskolenivå. Alle som har kunnskapen er velkommen med et svar. Men, ikke forvent at admin i matematikk.net er spesielt aktive her.

Moderators: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa

Post Reply
Aleks855
Rasch
Rasch
Posts: 6874
Joined: 19/03-2011 15:19
Location: Trondheim
Contact:

Sitter med ei øving i 3D-programmering (OpenGL) og har ei problemstilling jeg ikke ser løsninga på.

Jeg har et objekt som er plassert i punktet (x, y, z) og jeg skal rotere dette objektet 45 grader rundt en akse (la oss si x-aksen, men jeg skal implementere det samme for alle 3 akser).

Jeg må vite hvor objektet befinner seg etter denne rotasjonen, med hensyn på de gamle koordinatene.

Eksempel; jeg har en kube med sentrum i (1, 1, 1) og skal rotere den 45 grader rundt x-aksen. Hva blir den nye posisjonen?

Har blitt kodeblind og Lineær Algebra-blind.
Image
Brahmagupta
Guru
Guru
Posts: 628
Joined: 06/08-2011 01:56

Følgende matrise utfører en rotasjon med vinkel [tex]\theta[/tex] om x-aksen. Det skulle være greit ut fra denne å finne tilsvarende matrise for y og z aksen.

[tex]\left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos{\theta} & -\sin{\theta} \\ 0 & \sin{\theta} & \cos{\theta} \end{array} \right)[/tex]
Aleks855
Rasch
Rasch
Posts: 6874
Joined: 19/03-2011 15:19
Location: Trondheim
Contact:

Den hadde i utgangspunktet vært grei, men i dette tilfellet så har jeg allerede utført selve rotasjonen. Det jeg trenger nå er en formel for hvor sentrum av kuben befinner seg etter en rotasjon på $\theta$ rundt en akse.
Image
Vektormannen
Euler
Euler
Posts: 5889
Joined: 26/09-2007 19:35
Location: Trondheim
Contact:

Hva vil det mer spesifikt si at du har utført rotasjonen? (Altså, har du funnet de nye koordinatene til hjørnepunktene, rotert sideflatene, eller hva?)
Elektronikk @ NTNU | nesizer
Aleks855
Rasch
Rasch
Posts: 6874
Joined: 19/03-2011 15:19
Location: Trondheim
Contact:

Hehe, det er litt vanskelig å forklare. Kanskje bedre om jeg viser det frem?

http://youtu.be/Rg7epygfafA

Altså trenger jeg å fortelle kuben, nå er du rotert. Du befant deg i punktet (x,y,z), men nå befinner du deg i punktet (u,v,w).

På den måten vil riktige kuber velges for rotering etter diverse andre rotasjoner har vært gjort.

Forresten, formelen trenger ikke være HELT generell. Hver rotasjonsmetode roterer kun rundt EN akse. Altså kan det greit være tre forskjellige formler; en for rotering rundt x-aksen, en for rotering rundt y-aksen osv.
Image
Brahmagupta
Guru
Guru
Posts: 628
Joined: 06/08-2011 01:56

Hvis du definerer [tex]T(x)=Ax[/tex] hvor A er matrisen i forrige posten, så vil T benyttet på senteret i en av de 9 kubene i det aktuelle
området gi deg senteret for denne kuben etter rotasjonen (om x-aksen).
Aleks855
Rasch
Rasch
Posts: 6874
Joined: 19/03-2011 15:19
Location: Trondheim
Contact:

Ser ut som det fungerer til en viss grad med den teknikken, ja. Men av en eller annen grunn så blir fargene byttet om under prosessen, og jeg ser ikke grunnen. Alt jeg gjør er å sende nye center-koordinater. =(
Image
Gustav
Tyrann
Tyrann
Posts: 4563
Joined: 12/12-2008 12:44

Jeg tillater meg å innføre litt notasjon for å være i stand til å beskrive problemstillingene mer presist.

Si at den store kuben består av 3*3*3 mindre kuber med sidelengder 1, som er indeksert $a_{x,y,z}$, der $x,y,z=\{-1,0,1\}$, slik at $a_{0,0,0}$ er kuben i midten, $a_{1,y,z}$ er kubene som har positiv x-koordinat etc.

I startposisjonen vil nå kube $a_{x,y,z}$ ha sentrum i $(x,y,z)$. I tillegg må du gi hver kube to ortogonale "retningsvektorer" som entydig bestemmer hvordan kuben er rotert relativt sitt eget sentrum (og disse må oppdateres ved å bruke de rotasjonsmatrisene som brahmagupta foreslo etter hver rotasjon). På den måten kan man holde oversikt over at hver sideflate i hver kube har riktig farge etter rotasjonene.
Aleks855
Rasch
Rasch
Posts: 6874
Joined: 19/03-2011 15:19
Location: Trondheim
Contact:

Brahmagupta wrote:Følgende matrise utfører en rotasjon med vinkel [tex]\theta[/tex] om x-aksen. Det skulle være greit ut fra denne å finne tilsvarende matrise for y og z aksen.

[tex]\left( \begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos{\theta} & -\sin{\theta} \\ 0 & \sin{\theta} & \cos{\theta} \end{array} \right)[/tex]
Kjapt, er ikke dette rotasjon i xy-planet? Altså rundt z-aksen?
Image
Brahmagupta
Guru
Guru
Posts: 628
Joined: 06/08-2011 01:56

Nei, det er riktig som jeg skrev. Matrisen fikserer jo hele x-aksen!
Post Reply