In the documentation I found the following operation:
cpVect cpvrotate(const cpVect v1, const cpVect v2) – Uses complex multiplication to rotate v1 by v2. Scaling will occur if v1 is not a unit vector.
I'm not entirely sure how to rotate a vector by another vector but, if I understand correctly, to rotate it by an angle I have to use cpvforangle(const cpFloat a) first to make a vector of my angle.
Now, the last part says v1 will be scaled if it's length is not one (1). So to just rotate v1 without scaling I first have to calculate it's length, then use cpvrotate and then multiply the vector again with the length ?
Am I correct in this, and is there an easier way ?

Thanks !
-The Oddler