我在GLSurfaceView上显示2D图像,并想旋转它与特定的程度(即。180、75、360...)
我在触摸事件中编写了以下代码(这里的GPUImageView扩展了GLSurfaceView ),我从处理两个手指旋转手势的旋转手势检测器类中获取了变量rotationDegree中的值。下面的代码旋转GLSufaceview,但GLSurfaceView中显示的内容/图像保持不变(不在其中旋转)。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;
}
}发布于 2013-11-14 15:41:08
也可以通过ModelMatrix旋转曲面视图。
onDrawFrame()
{
Matrix.tramslateM(yourModelMatrix,offsetValue,translationInx,translationInY,translationInZ);
Matrix.rotateM(yourModelMatrix,offsetValue,andgle in degrees,inDirectionX,inDirectioY,inDirectionZ);
}https://stackoverflow.com/questions/19969167
复制相似问题