I'm trying to create a bullet class that stores the bullets current position (x,y,z) and its trajectory. Traditionally I've used 3 variables called xtraject, ytraject, and ztraject where each loop xtraject was added to x and same for y/z. So in order to get the bullet travelling upper right at a 45 degree angle xtraject and ytraject would be 1. I'm want to have bullets that can fire at arbitrary angles, perhaps just have an angle variable (maybe I would need 2?) to control which way it goes and then a speed to say how fast its moving.
Do I use polar coordinates to do this? What about quaternions?