You don't have to cap the components of the vector (pdx and pdy) seperately. Just normalize the vector to MAX_SPEED (a constant) if the magnitude of the vector is greater than MAX_SPEED.
I'm not sure what you're trying to get at by saying that the "action" is occuring on the wrong side of the Sin and Cos equations. Calculating a thrust force and adding it to a velocity vector makes perfect sense to me.
pdm# = sqr(pdx^2 + pdy^2) if pdm > MAX_SPEED then pdx = (pdx / pdm) * MAX_SPEED pdy = (pdy / pdm) * MAX_SPEED endif
I'm not sure what you're trying to get at by saying that the "action" is occuring on the wrong side of the Sin and Cos equations. Calculating a thrust force and adding it to a velocity vector makes perfect sense to me.