精华内容
下载资源
问答
  • <p><img alt="" height="717" src=... glRotatef(-rotateangle, 0.0, 0.0, 1.0); glutPostRedisplay();</code></pre> <p> 请问该怎么破?</p>
  • OpenGL之glRotatef旋转

    千次阅读 2019-04-07 11:47:30
    glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);  其中,angle为旋转的角度,单位为度.重点是x,y,z表达的是什么意思呢?应该如何取值?  如果说x,y,z表达的是一个坐标(x,y,z),那么这个函数就...

    void glRotatef(GLfloat angle,  GLfloat x,  GLfloat y,  GLfloat z);

          其中,angle为旋转的角度,单位为度.重点是x,y,z表达的是什么意思呢?应该如何取值?

          如果说x,y,z表达的是一个坐标(x,y,z),那么这个函数就说明了当前几何图形围着这个坐标点旋转,但往哪个方向旋转呢?所以很明显,x,y,z表达的意思并不是坐标点,而是要围绕哪个坐标轴旋转.即其实这里的x,y,z值相当于一个布尔值,0.0表示假,而非零参数则表示真。所以如果你想让当前的几何图形围绕着z轴旋转,那么x和y都设为0,而z设为非零值即可。如果这里的x,y,z的值都设置为0.0,那么将围绕着x轴旋转。还有一点需要注意,如果设置的旋转值(x,y,z的值)为正数,那么旋转的方向是逆时针的,如果旋转值是负数,那么旋转的方向是顺时针的。

      

    展开全文
  • glRotatef ((GLfloat) (day%360), 0.0, 0.0, 1.0);//旋转矩阵构造函数,把当前矩阵和一个表示旋转物体的矩阵相乘 glutWireSphere(0.3, 10, 10); // draw smaller planet 绘制球体并指定球体的大小。 ...

    代码实现功能如下:

           绘制一个小球,并且实现用两个键来控制一个小球前进与后退的滚动效果,其中按F键前进,按B键后退。

     

    #include <GL/glut.h>
    #include <stdlib.h>
    
    static int day = 0;
    
    void init(void)
    {
    	glClearColor (0.0, 0.0, 0.0, 0.0);
    	glShadeModel (GL_FLAT);
    }
    
    void display(void)
    { 
    	glClear (GL_COLOR_BUFFER_BIT);   //将窗口的背景设置为当前清空颜色
    	glColor3f (1.0, 0.0, 0.0);
    	glPushMatrix();   //把当前矩阵压入堆栈
    	//glutWireSphere(1.0, 20, 16); /* draw sun */
    	//glRotatef ((GLfloat) year, 0.0, 1.0, 0.0);
    	//glTranslatef (1.0, 0.0, 0.0);   //平移矩阵构造函数,把当前矩阵和一个表示移动物体的矩阵相乘
    	glTranslatef ((GLfloat) day/360*0.3*3.1415, 0.0, 0.0);
    	glRotatef ((GLfloat) (day%360), 0.0, 0.0, 1.0);//旋转矩阵构造函数,把当前矩阵和一个表示旋转物体的矩阵相乘
    	
    	glutWireSphere(0.3, 10, 10); // draw smaller planet 绘制球体并指定球体的大小。
    	glPopMatrix();   //从堆栈栈顶弹出一个矩阵为当前矩阵
    	glutSwapBuffers();
    }
    
    void reshape (int w, int h)  //窗口被移动或修改大小后的宽度和高度
    {
    	glViewport (0, 0, (GLsizei) w, (GLsizei) h);//调整像素矩形,用于绘制整个窗口
    	glMatrixMode (GL_PROJECTION);//接下来三个函数调整绘图坐标系,使左下角位置为(0, 0),右上角为(w, h)
    	glLoadIdentity ();
    	gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
    	glMatrixMode(GL_MODELVIEW);   //设置当前操作的矩阵为“模型视图矩阵”,指定一个4×4的建模矩阵作为当前矩阵 
    	glLoadIdentity();   //把当前矩阵设置为单位矩阵 
    	gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); //指定视图变换,把照相机放在(0,0,5),镜头瞄准(0,0,0),朝上向量定为(0,1,0)
    	//如果没有调用gluLookAt(),默认的情况下,照相机位于原点,指向Z轴负方向,朝上向量为(0,1,0) 
    }
    
    void keyboard (unsigned char key, int x, int y)
    {
    	switch (key) {
    		
    		case 'F':
    			day = day + 10;
    			glutPostRedisplay();
    		break;
    		
    		case 'B':
    			day = day - 10;
    			glutPostRedisplay();
    		break;
    		/*
    		case 'y':
    			year = (year + 5) % 360;
    			glutPostRedisplay();
    		break;
    		
    		case 'Y':
    			year = (year - 5) % 360;
    			glutPostRedisplay();
    		break;
    		*/
    		case 27:
    			exit(0);
    		break;
    		
    		default:
    		break;
    		
    	}
    }
    
    int main(int argc, char** argv){
        glutInit(&argc, argv);    //对GLUT进行初始化
        glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
        glutInitWindowPosition(100, 100);   //设置窗口在屏幕中的位置
        glutInitWindowSize(500, 500);   //设置窗口的大小
    	glutCreateWindow (argv[0]);    //参数将被作为窗口的标题
    	
    	init ();
    	glutDisplayFunc(display);
    	glutReshapeFunc(reshape);
    	glutKeyboardFunc(keyboard);
    	glutMainLoop();
    	return 0;
    }
    

        肝了一下午,,,我好难啊!!!

     

    展开全文
  • glRotatef

    2013-03-26 16:14:33
    glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z) glRotatef(45,1,0,0) 物體如何旋转?想象:从 坐标(0,0,0)即原点,引出一条线到(1,0,0),用右手握住这条线,这时,你会问,如何握?右手大拇指...

    glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z)

    glRotatef(45,1,0,0)

    物體如何旋转?想象:从 坐标(0,0,0)即原点,引出一条线到(1,0,0),用右手握住这条线,这时,你会问,如何握?右手大拇指指向 (0,0,0)至(1,0,0)的方向 才握。另外四个手指的弯曲指向 即是物体旋转方向。

    展开全文
  • glRotatef:把当前矩阵和一个表示旋转物体的矩阵相乘。物体将绕着(0,0,0)到(x,y,z)的直线以逆时针旋转,参数angle表示旋转的角度; glTranslatef:把当前矩阵和一个表示移动物体的矩阵相乘。三个参数分别表示了在三...

    glRotatef:把当前矩阵和一个表示旋转物体的矩阵相乘。物体将绕着(0,0,0)到(x,y,z)的直线以逆时针旋转,参数angle表示旋转的角度;

    glTranslatef:把当前矩阵和一个表示移动物体的矩阵相乘。三个参数分别表示了在三个坐标上的位移值;

    gluLookAt:它的参数比较多,前三个参数表示了观察点的位置,中间三个参数表示了观察目标的位置,最后三个参数代表从(0,0,0)到 (x,y,z)的直线,它表示了观察者认为的“上”方向。

    转载于:https://www.cnblogs.com/lovemyhuangmei/p/4026895.html

    展开全文
  • void glTranslatef(GLfloat x,GLfloat y,GLfloat z); 函数功能:沿X轴正方向平移x个单位(x是有符号数) 沿Y轴正方向平移y个单位(y是有符号数) 沿Z轴正方向平移z个单位(z是有符号数) void glRotatef...
  • OpenGL的glRotatef旋转变换函数详解 先看一下函数定义:void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) angle:为旋转的角度,单位为度。x,y,z:为对应xyz轴的布尔值变量。 重点是x,y,z表达的...
  • 答:glPushMatrix新压入的变换矩阵是复制了原来的栈顶变换矩阵,所以它继承了之前的变换,此后执行glTranslatef、 glRotatef这些函数时,修改的是栈顶变换矩阵,在glPopMatrix之前的点都将受到栈顶变换矩阵的作用,...
  • void glTranslatef(GLfloat x,GLfloat y,GLfloat z); 函数功能:沿X轴正方向平移x个单位(x是有符号数)  沿Y轴正方向平移y个单位(y是有符号数...void glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z);
  • 答:glPushMatrix新压入的变换矩阵是复制了原来的栈顶变换矩阵,所以它继承了之前的变换,此后执行glTranslatef、 glRotatef这些函数时,修改的是栈顶变换矩阵,在glPopMatrix之前的点都将受到栈顶变换矩阵的作用,...
  • opengl中的glRotatef 函数

    万次阅读 2015-07-09 14:12:43
    glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z) 该函数用来设置opengl中绘制实体的自转方式,即物体如何旋转 参数说明: angle:旋转的角度,单位为度; x,y,z表示绕着那个轴旋转,如果取值都...
  • glRotatef个人理解

    2014-11-14 16:30:15
    glRotatef(Angle,Xvector,Yvector,Zvector)负责让对象绕某个轴旋转。这个命令有很多用处。 //Angle 通常是个变量代表对象转过的角度。 Xvector , Yvector 和 Zvector 三个参数则共同决定旋转轴的方向。
  • glrotatef如何绕自身轴旋转

    千次阅读 2015-06-09 09:14:36
    glrotatef如何绕自身轴旋转,有需要的朋友可以参考下。 首先我们知道所有的opengl操作都以点(0,0,0)作为基点。 glrotatef(旋转角度(0~360),x,y,z),z,y,z是旋转轴。由于旋转操作全都围绕点(0,0,0),...
  • glRotatef ( rotateTri , 0.0f , 3.0f , 0f ); 会发现绘制的正方形绕它自己中心旋转,因为此时将远点移到了物体的中心。如果正方形如下: private FloatBuffer quaterBuffer2 = ...
  • 与glTranslatef(x, y, z)类似,glRotatef(angle, x, y, z)也是对坐标系进行操作。 旋转轴经过原点,方向为(x,y,z),旋转角度为angle,方向满足右手定则。 /////////////////////////////////////////////////////...
  • 与glTranslatef(x, y, z)类似,glRotatef(angle, x, y, z)也是对坐标系进行操作。 旋转轴经过原点,方向为(x,y,z),旋转角度为angle,方向满足右手定则。  glLoadIdentity(); glTranslatef(0.0f,0.0f,-...
  • Demo使用glRotatef ,glTranslatef来实现一个太阳、地球、月亮运动的3D图形。 1.glTranslatef() ——模型变换函数 移动 void glTranslatef(GLfloat x,  GLfloat y, GLfloat z); 这个函数表示...
  • OpenGL 函数 gluLookAt() glScalef() glTranslatef() glRotatef() glFrustum() glPerspective() 的使用
  • Android OpenGL ES 旋转glRotatef

    千次阅读 2013-09-01 18:15:27
    glRotatef(float angle, float X, float Y, float Z) 其中,angle指定对象旋转的角度,X,Y,Z三个参数共同决定旋转轴的方向。 即,glRotatef函数是将某对象沿指定轴旋转angle角度。   2.旋转实现方法:  ...
  • OpenGL函数思考-glRotatef

    千次阅读 2012-02-03 17:19:12
    OpenGL函数思考-glRotatef 函数原型:  void glRotated(GLdouble angle,GLdouble x,GLdouble y,GLdouble z)  void glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLdouble z) 函数说明:  这两个函数用来...
  • 我们知道OpenGL中维持着两套矩阵,一个是模型视图矩阵(model view matrix),另一个是投影矩阵(projection matrix)。...这回我就来研究OpenGL中一个常见的函数glRotatef(d)。 看参数,glRotatef( angle,
  • glRotatef(float angle, float X, float Y, float Z) 其中,angle指定对象旋转的角度,X,Y,Z三个参数共同决定旋转轴的方向。 即,glRotatef函数是将某对象沿指定轴旋转angle角度。 2.旋转实现方法:  ...
  • 1.移动 glTranslatef (GLfloat x, GLfloat y, GLfloat z);... glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); //把当前矩阵与一个表示移动物体的矩阵相乘。以逆时针方向绕着从原点到点(x
  • glRotatef函数的API中文参考文档请看:OpenGL ES之glRotate函数  void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);  其中,
  • Opengles之glRotatef()函数理解

    千次阅读 2013-01-02 17:57:58
    public void glRotatef(float angle,float x,float y,float z)  angle: 旋转角度  (x,y,z):轴向量  即以向量(x,y,z)为轴旋转angle个角度,那么旋转方向如何判定呢?  从 坐标(0,0,0)即原点,引出一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,472
精华内容 2,588
关键字:

glrotatef