Вращение объекта по оси X Y, cocos3D

Я использую Cocos3D на iOS. Мне нужно повернуть объект с помощью жеста панорамирования.

switch (gesture.state)
{
    case UIGestureRecognizerStateBegan:
        saveState = Dobj.rotation;
    break;
    case UIGestureRecognizerStateChanged:
        CC3Vector rotateVector = CC3VectorMake(gesture.translation.y, gesture.translation.x, 0.0f);
        Dobj.rotation = CC3VectorAdd(saveState, rotateVector);
    break;
    case UIGestureRecognizerStateEnded:
    break;
    default:
    break;
}

Таким образом, я могу заставить свой объект (Dobj) вращаться сам по себе. Но кажется, что ось также вращается, и это вызывает действительно странное вращение.

Как я могу это исправить ?


person Micka    schedule 27.03.2013    source источник


Ответы (1)


Итак, вот как я решил свою проблему.

switch (gesture.state)
{
    case UIGestureRecognizerStateBegan:
        saveState = CC3VectorMake(0.0f, 0.0f, 0.0f);
    break;
    case UIGestureRecognizerStateChanged:
         CC3Vector rotateVector = CC3VectorMake(gesture.translation.y, gesture.translation.x, 0.0f);
        [Dobj rotateBy:CC3VectorDifference(rotateVector, saveState)];
        saveState = rotateVector;
    break;
    case UIGestureRecognizerStateEnded:
    break;
    default:
    break;
}

Использование метода rotateBy: похоже только на вращение объекта без изменения его оси

person Micka    schedule 28.03.2013