Posts Tagged ‘quaternion rotation’

h1

quaternions page is finished!

September 29, 2008

Well, there you have it!  It’s got the functions and everything!  😉

h1

quaternions page is up + good times

September 29, 2008

Let me get this out of the way – there is a new article about quaternion rotations up.  Yes, I know I haven’t showed you how to convert to/from them, so it’s useless except as a theoretical paper.  This will soon change, but TOMORROW.  GOD IM TIRED BLARG.

Also to get out of the way, 2D Boy is almost about to release World of Goo, which I’m really geeking about right now.  If you order before they release it, you get a profanity sound effects pack.  FUCK!  😀

So I’ve had some good times this past week, which is interesting, seeing as how it literally started out with me on suicide watch.  I made a full recovery on Tuesday, ironically because of a Dream Theater song I was listening to.  A Change of Seasons, and there’s this part that’s like “I’m sick of all you hypocrites!  I don’t need your sympathy to get me through the day! Seasons change, and so can I!…” and it was really inspiring.  My main problem, I suddenly realized, was in expecting sympathy for my problems.  Whereas in a perfect world I would certainly get some sympathy for the kind of shit I deal with, I realized expecting it from everyone will only make me feel let down.

Then I went skating on Thursday with James, Colleen, and Phillip on 80’s night, and we listened to music from the past (i.e. real music) the whole time while skating.  On Friday I saw James again, and we basically played Destroy All Humans and such the whole time, but after that we went back to the rink on Saturday and enjoyed a roller derby match!  Go RoCo!  That was actually a really good time.  Then the next morning I went to YRUU (that’s youth religious unitarian universalists) again and didn’t get picked on really by that girl, so it was actually pretty cool.  I had a long conversation afterwards with cool people who like Transformers, Spore, D&D, and other incredibly geeky stuff, making me feel at home.  Tomorrow Chuck and Life are on network television, followed by a Tuesday at programming club, where I really just can’t feel better.  I’m on a roll of engaging in non-suckage!  😀

But my point is, I really forget just how much I can do when I’m in good spirits.  I wrote that whole fucking quaternions article in about an hour!  I mean, that is just crazy fast.  Of course it’s not quite finished, but I could have easily just slapped all the functions up there, and didn’t.  In fact, it was like a mini paper on quaternions before it even gets to rotation, and then there’s an extensive discussion on that.

When I get up tomorrow, I’ll get straight to work on the menus and hopefully have a usable thing soon.  And then I really will get to work on the game.  I’m still deciding if it should be pure 2D (aside from the menus obviously) or if I should go all slick and shiny 3D interface on you people, with bells, whistles, and cabbage.  All puppies need cabbage to slaughter freemasons!  Ahhh, I’m like, intoxicated with not feeling awful.  I almost forgot what that was like, you know?  ❤

h1

quaternions, I can make them work!

September 23, 2008

Now that I have arc ball working, I will show you what a quaternion is.  I have a couple of screenshots too, and they are here:

It looks like this initially.

It looks like this initially.

Now we've grabbed the arcball at the center.  The white circle represents the sphere in 4D hyperspace, and the red point is the point on the sphere we've grabbed.

Now we have a white circle showing us the grabable sphere of the arcball. The red point is where we've grabbed it.

As we've dragged the red dot, notice how what we've really done is simply dragged that point over on the arcball, and as the point is dragged, so rotates the sphere, and as the sphere rotates, so does the model.

As we've dragged the red dot, notice how what we've really done is simply dragged that point over on the arcball, and as the point is dragged, so rotates the sphere, and as the sphere rotates, so does the model.

Basically what a quaternion is is a 4 dimensional vector that exists in space over the real numbers.  For the purposes I use it for (rotation) it’s basically is superior, because it can do perfect great circle rotation easily.  The reason is that it isn’t constrained by the Euler representation’s axes (pitch, yaw, roll) which make the question of arbitrary axis smooth rotation much harder.  You have to do something like 3 different space transforms in order to do the rotation, and then you have to go back.  Whereas a quaternion essentially produces an imaginary axis that can rotate as though there were no space transform, because the other elements of the vector are relativistic.  It is very hard to imagine what this looks like, because it’s, you know, hyperspace.  Once the rotation operation has been derived through all that complex imaginary number crap, though, all the imaginary elements are gone, so nothing special is needed for the algorithm.  This wiki page has info on quaternions, and this NeHeGL example is a good demo of how it works.