Nice. Please keep it coming!
Check out my games at
www.ThePionEar.net
and my music, and that of my band, at
www.ThePionEar.net/BlindLabyrinth.html .
If you want to reach me, you can call 419-744-0517, friend me on Facebook,
(KenWDowney,) or write me at [email protected] .
Crazy Ken
----- Original Message -----
From: "Cara Quinn" <[email protected]>
To: "Gamers Discussion list" <[email protected]>
Sent: Friday, May 03, 2013 12:28 PM
Subject: [Audyssey] Vector Projection
Hi all,
Well I'm done responding to list craziness and since you get what you focus
on, I'm focusing on cool game mechanics! :)
I'd like to take my earlier notes on vectors and such, a step further to a
process called projection.
When you project a vector on to another vector, you're simply adding the
components of one vector to the components of another. As in:
0,2,0 + 1,0,0 = 1,2,0
So this process is just adding the x, y, and z components of each vector
separately as in:
0 + 1 = 1
2 + 0 = 2
0 + 0 = 0
So this is great but why would we want to do this?
Let's think of the first vector above (0,2,0) as perhaps a boat on an ocean.
This boat is traveling north in our game world, at 2 units per some amount
of time.
Let's think of the second vector as a wind blowing toward the east at 1 unit
per some amount of time. You can see where I'm going with this. ;)
If we apply the wind to the boat's motion, we end up with the boat traveling
to the coordinates 1,2,0 at the end of our given amount of time.
If the boat captain continues to steer the boat due north at the same speed
(0,2,0) the wind will still be blowing due east (1,0,0) and thus again blow
the boat to the ending coordinates of (1,2,0) again as the next unit of time
passes.
We can actually use projection to simulate various forces acting on entities
in our game world; wind, thrust, gravity, drag, friction. etc.
Let's look at the above projection in a different way now. Instead of the
boat captain steering the boat against the wind, perhaps the captain is
asleep and the boat is adrift. Don't worry, we won't let him go very far. :)
So we have our boat starting out moving north at (0,2,0).
We have our wind steadily blowing at (1,0,0).
Project the wind on to the boat's motion and you end up with the boat at
(1,2,0)
What happens if the boat simply keeps moving in its new direction?
1,2,0 + 1,0,0 = 2,2,0
Our boat is now moving northeast. -And the wind keeps blowing.
2,2,0 + 1,0,0 = 3,2,0
Our boat is now traveling east-northeast.
This looks right at a glance, but let's look at what's really happening
here. If you notice, our boat is actually speeding up and our calculations
are off.
Even though the above looks like physics, we haven't really taken any
physics into account here. -And, rather than go into a lot of physics in
this note, let's stay with a simple aspect of this boat's travel.
In an earlier note I gave the example of a runner continuously accelerating
and we illustrated this with an ever-increasing vector length. Well if you
notice, our boat's vector of travel keeps getting longer as the wind keeps
blowing. If we kept projecting the wind vector on to the boat's travel
vector, the x coordinate would just keep in creasing and increasing and
increasing until our boat would basically be traveling faster than any other
boat I know of! :) -And it still wouldn't stop there! :)
Obviously a wind of only 1 unit over time shouldn't be causing another
object to go faster and faster and faster.
So what have we missed? We haven't been taking the length or magnitude of
our vector into account.
So how does this help us?
We know that our boat originally traveled at 2 units over time. So our
boat;s vector of travel has a magnitude of 2 units. When we project the wind
vector on to it, we are adding magnitude to the vector.
Remember we ended up with 1,2,0
So rather than leave it there, let's check the magnitude of this vector.
We do this with the Pythagoras theorem.
1 * 1 is 1
2 * 2 is 4
0 * 0 is 0
1 + 4 + 0 is 5
the square root of 5 is 2.23606797749979
2.24 for our uses…
So our boat is now traveling faster than it's usual 2 units. As I said, we
can take quite a lot into account here but for now let's just go with the
idea that we really only want our boat ever traveling at 2 units over a
given time.
We can magnify our current vector so its length (the boat's velocity) is
still 2 units but traveling in its new direction.
Remember, we do this by dividing our vector by it's current length and then
multiplying by the length we want it to have.
So this would look like:
1 / 2.24 * 2 = 0.8928
2 / 2.24 * 2 = 1.7857
0 / 2.24 * 2 = 0
So the vector of travel we end up with is:
0.8928,1.7857,0
Okay, so it's just not as pretty as our earlier vectors but the computer
doesn't care. it will still be able to work with it just as effectively in a
gaming situation.
So this is actually the new direction and speed of our boat as the wind
blows it.
NOw we can do more with physics to take into account the energy being
imparted to the boat from the wind as well as the drag on the boat from the
sea and such, but for now this should be a fun start!…
Vector projection is a really simple, useful and pretty interesting process
to play with with your game entities.
Hope this makes sense and is something y'all may be interested in… :)
Have a great weekend and talk with y'all soon!…
Smiles,
Cara :)
---
View my Online Portfolio at:
http://www.onemodelplace.com/CaraQuinn
Follow me on Twitter!
https://twitter.com/ModelCara
---
Gamers mailing list __ [email protected]
If you want to leave the list, send E-mail to
[email protected].
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/[email protected].
If you have any questions or concerns regarding the management of the list,
please send E-mail to [email protected].
---
Gamers mailing list __ [email protected]
If you want to leave the list, send E-mail to [email protected].
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/[email protected].
If you have any questions or concerns regarding the management of the list,
please send E-mail to [email protected].