то же, что и _Winnie писал:
псевдокод
//угол со знаком float vectorAngle(a, b){ return atan2(a.x*b.y-b.x*a.y, a.x*b.x+a.y*b.y); } angle = vectorAngle(v1, v2) v1.rotate(angle);
Тема в архиве.