旋转的多维空间图形
来源:互联网 发布:淘宝客广告海报 编辑:程序博客网 时间:2024/05/16 12:26
可以旋转的四面体和立方体
float[] taperVertices = new float[] {
0.0f, 0.5f, 0.0f,
-0.5f, -0.5f,-0.2f,
0.5f, -0.5f, -0.2f,
0.0f, -0.2f, 0.2f };//四个顶点
int[] taperColors = new int[] { 65535, 0, 0, 0, 0, 65535, 0, 0, 0, 0,
65535, 0, 65535, 65535, 0, 0 };
private byte[] taperFacets = new byte[] { 0, 1, 2,
0, 1, 3,
1, 2, 3,
0, 2,3 };//四个面组合
float[] cubeVertices = new float[] { 0.5f, 0.5f, 0.5f, 0.5f, -0.5f, 0.5f,
-0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, 0.5f, 0.5f, -0.5f, 0.5f,
-0.5f, -0.5f, -0.5f, -0.5f, -0.5f, -0.5f, 0.5f, -0.5f };//八顶点
private byte[] cubeFacets = new byte[] { 0, 1, 2, 0, 2, 3, 2, 3, 7, 2, 6,
7, 0, 3, 7, 0, 4, 7, 4, 5, 6, 4, 6, 7, 0, 1, 4, 1, 4, 5, 1, 2, 6,
1, 5, 6 };//一十二个三角形
FloatBuffer taperVerticesBuffer;
IntBuffer taperColorsBuffer;
ByteBuffer taperFacetsBuffer;
FloatBuffer cubeVerticesBuffer;
ByteBuffer cubeFacetsBuffer;
private float rotate;
public MyRenderer() {
taperVerticesBuffer = FloatBuffer.wrap(taperVertices);
taperFacetsBuffer = ByteBuffer.wrap(taperFacets);
taperColorsBuffer = IntBuffer.wrap(taperColors);
cubeVerticesBuffer = FloatBuffer.wrap(cubeVertices);
cubeFacetsBuffer = ByteBuffer.wrap(cubeFacets);
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glDisable(GL10.GL_DITHER);
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
gl.glClearColor(0, 0, 0, 0);
gl.glShadeModel(GL10.GL_SMOOTH);
gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glDepthFunc(GL10.GL_LEQUAL);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
float ratio = (float) width / height;
gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10);
}
@Override
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
gl.glTranslatef(-0.6f, 0.0f, -1.5f);
gl.glRotatef(rotate, 0f, 0.2f, 0f);//Y
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, taperVerticesBuffer);
gl.glColorPointer(4, GL10.GL_FIXED, 0, taperColorsBuffer);
gl.glDrawElements(GL10.GL_TRIANGLE_STRIP,
taperFacetsBuffer.remaining(), GL10.GL_UNSIGNED_BYTE,
taperFacetsBuffer);
gl.glLoadIdentity();
gl.glTranslatef(0.7f, 0.0f, -2.2f);
gl.glRotatef(rotate, 0f, 0.2f, 0f);//Y
gl.glRotatef(rotate, 1f, 0f, 0f);//X
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, cubeVerticesBuffer);
gl.glDrawElements(GL10.GL_TRIANGLE_STRIP, cubeFacetsBuffer.remaining(),
GL10.GL_UNSIGNED_BYTE, cubeFacetsBuffer);
gl.glFinish();
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
rotate += 1;
}
}
- 旋转的多维空间图形
- 使用容器的概念理解多维数组和多维空间
- 二维图形旋转的实现
- 二维图形旋转的实现
- 二维图形旋转的实现
- 多维空间:对于一维到七维的理解
- 多维数组VS多维空间
- 图形旋转
- 图形旋转
- 图形旋转
- 旋转图形
- 图形旋转的C语言源程序
- 关于图形旋转的问题(GDI+)
- 怎样画旋转效果的图形
- [VB.NET]图形旋转的问题?
- 关于图形旋转的问题(GDI+)
- 点阵图形的高效旋转算法
- openGL 旋转的图形 矩阵操作
- Android之SurfaceView使用总结
- sqlserver2008连接oracle11g
- POJ 1265 Area
- App Engine Python 概述
- Infobright 4.5 版本的一些新特性详解
- 旋转的多维空间图形
- Java jdbc数据库连接池总结!
- 正则表达式学习日志
- 从零开始学习CocosBuilder(转自泰然论坛)
- AAuto_简单批量重命名
- 使用KGDB调试内核和模块
- VC++服务器端开发方向必须要学的几门技术浅析
- hdu 2256 Problem of Precision 矩阵
- Android 禁止屏幕休眠和锁屏的方法