旋转GLSurfaceView

时间:2013-11-14 03:46:18

标签: android opengl-es rotation glsurfaceview

我在GLSurfaceView上显示2D图像并希望以特定度数旋转它(即180,75,360 ......)

我在触摸事件中编写了以下代码。(这里GPUImageView扩展了GLSurfaceView),我从我的Rotate Gesture Detector类中获取值rotationDegree,它处理两个手指旋转手势。下面的代码旋转GLSufaceview,但GLSurfaceView中显示的content / iamge保持不变(不在其中旋转)。 android有示例,但它们用于3D而不是旋转度。

    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        rotationDetector.onTouchEvent(event);
        /* Rotate View Here */
        GPUImageView.this.setRotation(rotationDegree);
        requestRender();
        return true;
    }

我有自定义旋转检测器类,用于调度与两个手指旋转相关的事件

    private class RotateListener extends RotateGestureDetector.SimpleOnRotateGestureListener
    {
        @Override
        public boolean onRotate(RotateGestureDetector detector)
        {
            rotationDegree -= detector.getRotationDegreesDelta();
            return true;
        }
    }

1 个答案:

答案 0 :(得分:0)

您也可以通过ModelMatrix旋转曲面视图..

onDrawFrame()
{
Matrix.tramslateM(yourModelMatrix,offsetValue,translationInx,translationInY,translationInZ);
Matrix.rotateM(yourModelMatrix,offsetValue,andgle in degrees,inDirectionX,inDirectioY,inDirectionZ);
}