title: Transforming an object between two coordinate spaces
body: <p>So I'm reading the "3D Math Primer For Graphics And Game Development" book, coming from pretty much a non-math background I'm finally starting to grasp vector/matrix math - which is a relief. </p>
  
  <p>But, yes there's always a but, I'm having trouble understand the translation of an object from one coordinate space to another. In the book the author takes an example with <a href="http://totmacher.eu/upload/car_gun.jpg" rel="nofollow noreferrer">gun shooting at a car (image)</a> that is turned 20 degrees (just a 2D space for simplicity) in "world space". So we have three spaces: World Space, Gun Object Space and Car Object Space - correct? The book then states this:</p>
  
  <blockquote>
    <p><em>"In this figure, we have introduced a rifle that is firing a bullet at the car. As indicated by the
    coordinate space on the left, we would normally begin by knowing about the gun and the trajectory
    of the bullet in world space. Now, imagine transforming the coordinate space in line with the
    car’s object space while keeping the car, the gun, and the trajectory of the bullet still. Now we
    know the position of the gun and the trajectory of the bullet in the object space of the car, and we
    could perform intersection tests to see if and where the bullet would hit the car."</em></p>
  </blockquote>
  
  <p>And I follow this explanation, and when I beforehand know that the car is rotated 20* degrees in world space this isn't a problem - but how does this translate into a situation say when I have an archer in a game shooting from a hill down on someone else? I don't know the angle at which everything is displaced there?</p>
  
  <p>And which object space is rotated here? The World or Gun space? Yeah as you can see I'm a bit confused.</p>
  
  <p>I think the ideal response would be using the car and gun example using arbitrary variables for positions, angle, etc.</p>