java - 在Android中用手指旋转3D对象

标签 java android opengl-es

她是我的代码,帮助我如何实现touchlistner并用手指旋转立方体。我创建了绘制立方体的单独的立方体类。还有MainActivity的类其中 SurfaceView 也被声明,并且从 MainActivity 调用 Renderer 类。

public class GLCubeRenderer implements Renderer {

//private float oldX; //valor anterior de X, para rotación
//private float oldY; //valor anterior de Y, para rotación
private GLCube  cube;
static float ratio;
private final float[] mAccumulatedRotation = new float[16];
private final float[] mCurrentRotation = new float[16];
float[] mModelMatrix;

public GLCubeRenderer(){

    cube = new GLCube();
}

@Override
public void onSurfaceCreated(GL10 gl, EGLConfig eglconfig) {
    gl.glDisable(GL10.GL_DITHER);
    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
    gl.glClearColor(.8f, 0, .7f, 1);
    gl.glClearDepthf(1f);
    Matrix.setIdentityM(mAccumulatedRotation, 0);

}

@Override
public void onDrawFrame(GL10 gl) {
    gl.glDisable(GL10.GL_DITHER);
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    gl.glMatrixMode(GL10.GL_MODELVIEW);
    gl.glLoadIdentity();
    GLU.gluLookAt(gl, 0, 0, -5, 0, 0, 0, 0, 2, 0);
    long time =SystemClock.uptimeMillis() %4000L ;
    float angle = .090f *((int) time);
    gl.glRotatef(angle, 1, 0, 2);
    gl.glRotatef(angle, 0, 0, 1);
    cube.Draw(gl);
}

@Override
public  void onSurfaceChanged(GL10 gl, int width, int height) {

    gl.glViewport(0, 0, width, height);
     ratio = (float) width/height ;
    gl.glMatrixMode(GL10.GL_PROJECTION);
    gl.glLoadIdentity();
    gl.glFrustumf(-ratio, ratio, -1, 1, 1, 25);
}

最佳答案

您可以使用 jazzy view Flipper。 这是链接https://github.com/jfeinstein10/JazzyViewPager

关于java - 在Android中用手指旋转3D对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186805/

相关文章:

java - 如何使用Java中的Excel文件中的随机函数随机读取单元格值?

android - 在 Android 应用程序中使用 Microsoft Access 文件

iphone - 当我在 openGL 中将纹理加载为 RGBA4444 时,设备会消耗多少内存?

c++ - 这是一个实用且性能足够好的着色器,可以在移动设备上进行模糊处理吗?

java - scala/spark —如何使用指定的任意字节数组创建字符串?

java - 将SmartID Reader JNI库添加到现有的gradle项目中

java - 如何一次性替换一个字符串的多个子字符串?

swift - OpenGL ES 透明度不起作用,而是与背景融为一体

Java-传递未知的DAO

android - 如何查看核心 Android 类?