Timeline for How to rotate an object around world aligned axes?
Current License: CC BY-SA 3.0
30 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Nov 10, 2015 at 9:57 | vote | accept | Syntac_ | ||
| Nov 9, 2015 at 18:29 | answer | added | Ilmari Karonen | timeline score: 4 | |
| S Dec 18, 2013 at 5:58 | history | bounty ended | House | ||
| S Dec 18, 2013 at 5:58 | history | notice removed | House | ||
| Dec 17, 2013 at 0:55 | history | tweeted | twitter.com/#!/StackGameDev/status/412747948158894080 | ||
| S Dec 16, 2013 at 23:35 | history | bounty started | House | ||
| S Dec 16, 2013 at 23:35 | history | notice added | House | Reward existing answer | |
| Dec 14, 2013 at 12:02 | answer | added | sam hocevar | timeline score: 2 | |
| Dec 13, 2013 at 19:29 | vote | accept | Syntac_ | ||
| Nov 10, 2015 at 9:57 | |||||
| Dec 13, 2013 at 18:23 | answer | added | concept3d | timeline score: 16 | |
| Dec 13, 2013 at 16:27 | answer | added | Charles Beattie | timeline score: 2 | |
| Dec 13, 2013 at 14:21 | answer | added | Syntac_ | timeline score: 1 | |
| Dec 13, 2013 at 12:41 | comment | added | Syntac_ | @CharlesBeattie it's for a game with tetris-like mechanics, but with X rotations as well as Z. | |
| Dec 13, 2013 at 9:30 | comment | added | Charles Beattie | I would like to know why you would need to do this. If you are trying to avoid gimbal lock I would use quaternions or log space quaternions and convert to a matrix just before applying to vertices. | |
| Dec 12, 2013 at 16:03 | comment | added | dsilva.vinicius | @Syntac Posted an answer because of the limitations of comments. | |
| Dec 12, 2013 at 14:56 | history | edited | Syntac_ | CC BY-SA 3.0 | added 187 characters in body |
| Dec 12, 2013 at 14:41 | comment | added | Syntac_ | @dsilva.vinicus would you be able to provide some C++ DirectX/pseudocode to demonstrate? | |
| Dec 12, 2013 at 11:09 | comment | added | dsilva.vinicius | @GuyRT I don't think so. Note that M, N and O are not the same in both cases. I should have give the names M1, N1 and O1 for the matrices in the second case. M1, N1 and O1 are rotations around the world axis in world coordinates, differently from the first case where the matrices N and M will work in object coordinates. | |
| Dec 12, 2013 at 9:55 | comment | added | GuyRT | @dsilva.vinicius Your separated transformations are exactly the same as the combined one, or to put it another way: MNOv == M*(N*(Ov)) | |
| Dec 12, 2013 at 2:02 | comment | added | dsilva.vinicius | Using Euler angles you are multiplying all the three rotation matrices before applying then on the vertex. If M, N, O are the rotation matrices, the result operation is MNOv. What I have proposed is to apply each matrix separately: v1= Ov0, then v2 = Nv1 and finally v3= Mv2. This way each vi will be in world coordinates and you just need to use a rotation matrix for the current axis in world coordinates too. | |
| Dec 12, 2013 at 1:33 | comment | added | Syntac_ | Using an old rotation would still require the multiplication of the new rotation and result in the same operation, no? To simplify the solution I only need rotations in the X and Z world axes. | |
| Dec 12, 2013 at 1:12 | comment | added | dsilva.vinicius | Any method that group transformations before applying to the vertices will fall in the problem you are experiencing. I think the only way to do that with just the angles is rotating the vertices around each axis at a time, saving the result of the rotation and using it as input for the next rotation. This way you will be simulating that your input geometry is passing through the pipeline three times. | |
| Dec 12, 2013 at 1:03 | comment | added | Syntac_ | I'm not looking for a solution in Euler angles. I simply need any solution which performs the correct task. | |
| Dec 12, 2013 at 0:21 | history | edited | Syntac_ | CC BY-SA 3.0 | added 196 characters in body |
| Dec 11, 2013 at 23:11 | comment | added | Syntac_ | Yes like you said only one angle is about a world axis. I want a solution where I can rotate by an angle around multiple world axes. For example, I want to represent a rotation of 90 degrees around the world-X and a rotation of 90 degrees around the world-Z as one rotation transformation to compose an object's world transform/matrix. | |
| Dec 11, 2013 at 23:04 | comment | added | DMGregory♦ | Do you want Euler angles, or rotation about world axes? Note that by the definition of Euler angles (eg en.wikipedia.org/wiki/Euler_angles ), only the alpha angle is strictly about a world axis. The other two angles are relative to tilted axes which do not necessarily coincide with the world axes. | |
| Dec 11, 2013 at 21:43 | comment | added | Syntac_ | Filtering what out? I do call the 3 separate functions and then multiply them to create the transformation matrix. This archieves a local rotation though. | |
| Dec 11, 2013 at 21:30 | answer | added | dsilva.vinicius | timeline score: 1 | |
| Dec 11, 2013 at 21:04 | comment | added | TravisG | What's wrong with just calling the differnet functions three times and filtering out the parts of the vectors you don't want (by setting them to 0 before calling the function)? Otherwise I'm not sure what you're trying to achieve. | |
| Dec 11, 2013 at 20:09 | history | asked | Syntac_ | CC BY-SA 3.0 |