This might be a little vague, but better than nothing I hope. One way to rotate about an arbitrary axis (there are others): - find the unique point on the axis such that a line from that point to the origin is perpendicular to the axis - let's suppose the point is 1,2,3 -translate that point to the origin - Translation(-1,-2,-3) -do the rotation -undo the translation - Translation(1,2,3) Hope that helps a bit