В общем есть у меня вектор который совпадает с осью игрек и есть вектор к которому я хочу повернуть некоторое количество точек чьи координаты при направляющем векторе по оси игрек мне известны.
Vector3 axis = new Vector3(1,1,1); //нужная ось
axis.Normalize();
Vector3 curAxis = new Vector3(0,1,0);//текущая ось
float angle = Vector3.Angle(axis,curAxis);//угол между векторами
Vector3 newAxis = Vector3.Cross(axis,curAxis);//ось вращения для квартерниона
newAxis*=Mathf.Sin(angle);
Quaternion magic = new Quaternion(newAxis.x,newAxis.y,newAxis.z,Mathf.Cos(angle));
...
vert[i*(width+1)+j] = magic * pos;
И в общем вращение происходит в нужной плоскости, но не на тот угол что мне нужен. От какого вектора в плоскости с нормалью совпадающей с осью вращения этот угол считать?