Вращающийся объект OpenGL-ES - PullRequest
0 голосов
/ 23 января 2012

После многих часов борьбы я наконец смог нарисовать объект, но застрял, когда дело дошло до вращения. Я пытаюсь сделать вращение вокруг оси Y, но я не могу сделать вращение плавным. Это в значительной степени прыгает вокруг. Там может быть несколько кусочков ненужных между ними, поэтому я использовал шаблон.

- (void)update
{
    float aspect = fabsf(self.view.bounds.size.width / self.view.bounds.size.height);
    GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(65.0f), aspect, 0.1f, 100.0f);

    self.effect.transform.projectionMatrix = projectionMatrix;

    GLKMatrix4 baseModelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -4.0f);

    // Compute the model view matrix for the object rendered with ES2
    GLKMatrix4 modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, 0.0f);
    modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, startPoint.y, 0.0f, 1.0f, 0.0f);

    dx = dy = 0;
    modelViewMatrix = GLKMatrix4Multiply(baseModelViewMatrix, modelViewMatrix);

    _normalMatrix = GLKMatrix3InvertAndTranspose(GLKMatrix4GetMatrix3(modelViewMatrix), NULL);

    _modelViewProjectionMatrix = GLKMatrix4Multiply(projectionMatrix, modelViewMatrix);

    _rotation += self.timeSinceLastUpdate * 0.5f;
}

И мои сенсорные поведения:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    startPoint = [touch locationInView:self.view];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:self.view];
    dx = point.y - startPoint.y;
    dy = point.x - startPoint.x;
    startPoint = point;
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{

}

Заранее спасибо.

1 Ответ

0 голосов
/ 23 января 2012

, пройдя по ссылке ниже библиотеки Apple, можно решить вашу проблему [http://developer.apple.com/library/ios/#samplecode/GLSprite/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007325

...