`
HCQmaker
  • 浏览: 46855 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JOGL入门 第3课

360 
阅读更多
这一课,来学习旋转
首先在第2课的基础上,添加代码
我们加入一个类
private float xrot;//我们定义一个浮点数用来控制旋转

private Animator animator; //用于动画的播放
在void run()中添加
          animator.start();
在init(GLAutoDrawable drawable)中加入
         animator=new Animator(canvas);//实例化对canvas,刷新
(由于在编写的时候没仔细出现代码里面修改了,但是这里没有说明的情况,还请见谅 )


glRotate:void glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z)
  angle:旋转的角度,x,y,z:指定要绕着旋转的轴只要把x,y,z赋值为1.0就可以

我们再在display(GLAutoDrawable drawable)中添加些代码
  public void display(GLAutoDrawable drawable)
  {
    GL gl = drawable.getGL();
    gl.glLoadIdentity();    //重置矩阵
    gl.glClear(GL.GL_COLOR_BUFFER_BIT);    //清除颜色缓冲
    gl.glTranslatef(0.0f, 0.0f, -6.0f);    //向内(Z轴负方向)移动6
    //---------添加的新代码
      gl.glRotatef(xrot, 1.0f, 0.0f, 0.0f);
      xrot+=0.1f;
      if(xrot>360){
      xrot=0;
      }
    //---------------------
    gl.glTranslatef(-2.0f, 0.0f, 0.0f);
    //gl.glColor3f(0.0f, 1.0f, 0.0f);        //设置颜色(r,g,b)绿色
    gl.glBegin(GL.GL_QUADS);               //开始绘制多边形
       gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(-1.0f, -1.0f, 0.0f);  //第1个顶点
       gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, 0.0f);   //第2个顶点
       gl.glColor3f(0.0f, 0.0f, 1.0f);gl.glVertex3f(1.0f, 1.0f, 0.0f);    //第3个顶点
       gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(-1.0f, 1.0f, 0.0f);   //第4个顶点
    gl.glEnd();
   //---------添加的新代码
   gl.glRotatef(xrot, 0.0f, 1.0f, 0.0f);
   //---------------------
    gl.glTranslatef(4.0f, 0.0f, 0.0f);
    gl.glBegin(GL.GL_TRIANGLES);               //开始绘制多边形
       gl.glColor3f(1.0f, 0.0f, 0.0f);gl.glVertex3f(-1.0f, -1.0f, 0.0f);  //第1个顶点
       gl.glColor3f(1.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, -1.0f, 0.0f);   //第2个顶点
       gl.glColor3f(0.0f, 1.0f, 0.0f);gl.glVertex3f(1.0f, 1.0f, 0.0f);    //第3个顶点
    gl.glEnd();
  }

好了现在可以实现动画了,四方体和三角形都动起来了

声明:

     刚开始学习opengl的时候,在网上找了很久,终于找到NeHe的教程,从中得到了很多
     我也希望我自己东拼西凑弄共享给大家,我也希望有更多的人加入进来,
     引用时请声明此点,如果有问题请多多指教,大家互相帮助了我的E-mail:huangchunquanmaker@163.com
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics