首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

glTranslatef不随z轴移动

glTranslatef是OpenGL中的一个函数,用于在三维空间中进行平移变换。它可以将物体沿着x、y、z轴方向进行平移。

具体来说,glTranslatef函数接受三个参数,分别表示在x、y、z轴上的平移距离。例如,glTranslatef(2.0f, 0.0f, 0.0f)表示将物体在x轴方向上向右平移2个单位。

需要注意的是,glTranslatef函数是针对当前矩阵进行平移变换的,因此需要在进行平移前将当前矩阵设置为模型视图矩阵(通常是通过glMatrixMode(GL_MODELVIEW)函数实现)。

glTranslatef函数在三维图形渲染中非常常用,可以用于实现物体的移动、相机的移动等效果。它可以应用于各种场景,如游戏开发、虚拟现实、建模等。

腾讯云提供了云计算相关的产品和服务,其中与OpenGL相关的产品包括云服务器(CVM)和云原生应用引擎(TKE)。云服务器提供了强大的计算能力和灵活的网络配置,可以用于搭建OpenGL渲染环境。云原生应用引擎则提供了容器化部署和管理的能力,可以方便地部署OpenGL应用。

更多关于腾讯云产品的信息,您可以访问腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

glLoadIdentity()与glTranslatef()和glRotatef()--坐标变换

假设有点(3,3,3),如果把该点沿x移动2单位,沿y移动3单位,沿z移动4单位,那么该点会是(3+2, 3+3, 4+4) = (5,6,7). 用矩阵表示是:  ?  ...首先对三角形起作用的是旋转,然后是移动。明确了作用顺序后,还有一个让人困惑的就是坐标是否改变。因为glTranslatef的变换是以当前位置来变换的,也就是说用的是相对坐标而不是绝对坐标。...之后,坐标回到OpenGL窗口的中心,通过两次glTranslatef(-1.5f,0.0f,-6.0f),坐标到了(-3.0f,0.0f,-12.0f); 所以三角形首先按向量(0.0f,1.0f...,0.0f)移动,然后绕X旋转,然后再按向量(-2.5f,0.0f,-10.0f)移动,最终得到的就是把一个如下描述的图形: ?...这个图形在旋转,可以看出是绕X旋转的三角形,而所在的位置有两次glTranslatef确定。

1.6K40

4.4.2 OpenGL几何变换编程实例

- p1.z); /*通过平移-旋转-平移复合变换序列完成任意的旋转(注意OpenGL中的反序表示)*/ glTranslatef (p1.x, p1.y, p1.z); //③移动p1到原始位置.../*②关于通过坐标原点的坐标旋转*/ glRotatef (thetaDegrees, vx, vy, vz); glTranslatef (-p1.x, -p1.y, -p1.z); //①...移动p1到原点位置 } /* 三维比例放缩变换,参数:比例系数sx、sy、sz和固定点fixedPt */ void scale3D (GLfloat sx, GLfloat sy, GLfloat...sz, wcPt3D fixedPt) { /*通过平移-放缩-平移复合变换序列完成任意点为中心点的比例缩放*/ /* ③反平移到原始位置*/ glTranslatef (fixedPt.x..., fixedPt.y, fixedPt.z); glScalef (sx, sy, sz); // ②基于原点的比例放缩变换 /* ① 移动固定点到坐标原点*/ glTranslatef (-

75520
  • Android开发笔记(一百五十四)OpenGL的画笔工具GL10

    y,以及垂直方向的z。...如下图的三维坐标系所示,三维空间有个M点,该点在x上的投影为P点,在y上的投影为Q点,在z上的投影为R点,因此M点的坐标位置就是(P, Q, R)。 ?...具体的方法调用例子如下所示: // 沿着y的负方向旋转90度 gl.glRotatef(90, 0, -1, 0); // 沿x方向移动1个单位...第二到第四个参数为相机的位置坐标,第五到第七个参数为相机画面中心点的坐标,第八到第十个参数为朝上的坐标方向,比如第八个参数为1表示x朝上,第九个参数为1表示y朝上,第十个参数为1表示z朝上...//gl.glRotatef(angle, 0, 0, -1); //gl.glRotatef(angle, 0, -1, 0); // 沿x方向移动

    1.2K20

    机械版CG 实验3 变换参考实例

    (-1.0f, 0.0f, 0.0f);//用平移矩阵乘当前矩阵,格式为:glTranslatef(x,y,z)        glRotatef((GLfloat) shoulder, 0.0f, 0.0f..., 1.0f);//用旋转矩阵乘当前矩阵,格式为glRotatef (角度,x,y,z),这里是绕Z旋转        glTranslatef(1.0f, 0.0f, 0.0f);//再用平移矩阵乘当前矩阵...       glPushMatrix();//变换矩阵压栈        glScalef(2.0f, 0.4f, 1.0f);//用缩放矩阵乘以当前矩阵,格式为glScalef(x缩放比例,y缩放比例,z缩放比例...(1.0f, 0.0f, 0.0f);        glRotatef((GLfloat) elbow, 0.0f, 0.0f, 1.0f);        glTranslatef(1.0f, 0.0f...其实这一句可以放到display()中,效果是一样的,由于display()是不断被调用的,所以你的视点被不断改变.还有一个方法可以改变视点,函数     gluLookAt(eye_x, eye_y, eye_z,

    44210

    【OpenGL】二十一、OpenGL 矩阵压栈与出栈 ( 不同类型矩阵变换先后顺序 | 渲染前不设置单位阵 | 压栈出栈原理分析 | 代码示例 )

    , 与先移动再旋转 的效果是不同的 ; 矩阵具有叠加性 , 先移动再旋转 , 与先旋转再移动 , 最终的模型视图矩阵的值是不同的 ; 举个例子 : 人走路时 , "先向左转 , 然后再走 100 米...1 , 则绕该旋转 // 这里设置的是绕 z 旋转 30 度 glRotatef(30.0f, 0.0f, 0.0f, 1.0f); // 平移变换 // 设置 xyz 三个方向平移的值...glTranslatef(0.0f, -2.0f, 0.0f); 效果 : 先移动后旋转代码 : // 设置单位矩阵 glLoadIdentity(); // 矩阵缩放 //...z); // 第 1 个参数是旋转角度 , 后面三个参数的值代表是否绕该旋转 , // 如果对应值设置为 1 , 则绕该旋转 // 这里设置的是绕 z 旋转 30 度 glRotatef..., // 如果对应值设置为 1 , 则绕该旋转 // 这里设置的是绕 z 旋转 30 度 glRotatef(30.0f, 0.0f, 0.0f, 1.0f); //

    1.9K00

    实验8 OpenGL太阳系动画

    为了编写这个程序,需要使用glRtate函数让这颗行星绕太阳旋转,并且绕自身的旋转。还需要使用glTranslate函数让这颗行星远离太阳系原点,移动到自己的轨道上。...因此,绘制太阳时并不需要移动,可以使用glRotate*函数绕一个任意的旋转。绘制一颗绕太阳旋转的行星要求进行几次模型变换。...接着,可以调用glTranslate函数把局部坐标系统移动到行星轨道上的一个位置。移动的距离应该等于轨道的半径。...GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); //指定当前操作模型视图矩阵堆栈 glLoadIdentity(); //重置模型视图矩阵 glTranslatef...(0.0f, 0.0f, -500.0f); //将图形沿z负向移动 glColor3f(1.0f, 0.0f, 0.0f); //画太阳 glutSolidSphere(50.0f, 20, 20

    2.2K10

    实验3 OpenGL几何变换

    (2.0,3.0,0.0); //向右移动2单位,向上移动3单位 glColor3f (0.0, 1.0, 0.0); drawSquare(); //绘制边长为2绿色正方形 glTranslatef(...(2.0,3.0,0.0); //向右移动2单位,向上移动3单位 glScalef(1.0,1.5,1.0); //X和Z方向保持不变,Y方向放大为原来的1.5倍 glColor3f (0.0, 1.0...2单位,向下移动3单位 glScalef(0.5,1.5,1.0); //Z方向保持不变,X方向缩小为原来的0.5倍,Y方向放大为原来的1.5倍 glColor3f (0.0, 0.0, 1.0); drawSquare...(2.0,3.0,0.0); //向右移动2单位,向上移动3单位 glScalef(1.0,1.5,1.0); //X和Z方向保持不变,Y方向放大为原来的1.5倍 glColor3f (0.0, 1.0...向左移动2单位,向下移动3单位 glScalef(0.5,1.5,1.0); //Z方向保持不变,X方向缩小为原来的0.5倍,Y方向放大为原来的1.5倍 glColor3f (0.0, 0.0, 1.0

    1.2K20

    实验4 二维几何变换

    (1) 使用glTranslatef()函数,实现图形平移,并结合glTranslatef()函数的不同参数输入,实现x,y和z方向的平移,将测试结果存为图1-3,与对应修改的平移函数代码一起保存至word...实验文档中(20分钟); (2) 使用glRotatef()函数,实现图形旋转,并结合glRotatef()函数的不同参数输入,实现x,y和z方向的旋转,将测试结果存为图4-6,与对应修改的旋转函数代码一起保存至...theta,vx,vy,vz指定这个旋转物体的矩阵,物体将围绕(0,0,0)到(x,y,z)的直线以逆时针旋转,参数theta表示旋转的角度。...注意这里都是说“把当前矩阵和一个表示移动物体的矩阵相乘”,而不是直接说“这个函数就是旋转”或者“这个函数就是移动”,这是有原因的,马上就会讲到。...由于“先移动后旋转”和“先旋转后移动”得到的结果很可能不同,初学的时候需要特别注意这一点。

    1.1K20

    数控机床出现X、Y、Z失控原因分析,检查与排除!

    一、数控铣床加工过程中突然出现X、yZ同时快速运动 1)故障现象。...数控立式铣床,FANUC-7CM数控铣床,在加工过程中,突然出现X、YZ同时快速运动,导致机床碰撞,引起刀具与工件的损坏。 2)故障分析。坐标轴突然失控的原因通常是由于位置环开环引起的。...当某一出现以上问题时,一般是由于该伺服系统的位界测量系统故障引起的。但在本机床上,由于机床的所有同时出现问题,因此故障原因应与系统公共部分有关。...二、数控车床Y进给失控 1)故障现象。某数控车床出现Y进给失控,无论是点动还是程序进给,导轨一旦移动起来就不能停下,直到按下紧急停止为止。 2)故障分析。...更换y编码器后,故障排除。 4)故障维修记录登记。做好此次任务实施的机床故障维修记录登记。

    1.7K20

    实验6 OpenGL模型视图变换

    如果程序没有调用gluLookAt(),那么照相机会设定为一个默认的位置和方向,即照相机位于原点,指向z负方向,朝上向量为(0,1,0)。...在深度测试算法中,通过扫描投影在xOy平面上每一点的z坐标的大小,确定遮挡关系,只显示z坐标小的像素,进而完成遮挡效果。...wHeight = 0; int wWidth = 0; float place[] = { 0, 0, 5 }; void Draw_Scene() { glPushMatrix();//当前矩阵压栈 glTranslatef...(place[0], place[1], place[2]);//平移,放在桌面上的高度 glRotatef(90, 1, 0, 0); //茶壶绕x旋转的角度 glRotatef(tRotate...号光源的位置属性 glLightfv(GL_LIGHT0, GL_AMBIENT, white);//设置0号光源的环境光属性 glEnable(GL_LIGHT0);//启用0号光源 // glTranslatef

    2K30

    【OpenGL】二十、OpenGL 矩阵变换 ( 矩阵缩放变换 | 矩阵旋转变换 | 矩阵平移变换 )

    , 如果对应值设置为 1 , 则绕该旋转 , 这里设置的是绕 z 旋转 30 度 ; // 矩阵旋转 // glRotatef (GLfloat angle, GLfloat x, GLfloat...y, GLfloat z); // 第 1 个参数是旋转角度 , 后面三个参数的值代表是否绕该旋转 , // 如果对应值设置为 1 , 则绕该旋转 // 这里设置的是绕 z 旋转...; // 第 1 个参数是旋转角度 , 后面三个参数的值代表是否绕该旋转 , // 如果对应值设置为 1 , 则绕该旋转 // 这里设置的是绕 z 旋转 30 度 glRotatef...旋转了 30 度 ; 五、矩阵平移变换 ---- 渲染时先设置单位矩阵 , // 设置单位矩阵 glLoadIdentity(); 然后调用 glTranslatef 方法设置平移矩阵 ,...; // 第 1 个参数是旋转角度 , 后面三个参数的值代表是否绕该旋转 , // 如果对应值设置为 1 , 则绕该旋转 // 这里设置的是绕 z 旋转 30 度 //glRotatef

    3.6K00

    移动端 模拟手机联系人触摸A~Z导航

    HTML5学堂:今天要与大家分享一个当前移动端很常见的效果,类似于手机联系人的快速导航功能,即当触摸a~z的字母时,能够相对应的显示文字。...有些手机的音乐导航也类似,具体可详见下图: touchmove的问题 在移动端,我们可以使用touch事件进行处理,此处首先想到的是使用touchmove事件。...实现触摸a~z导航(模拟手机联系人) 当前能够想到的实现方法有两种(也均测试无误) 第一种方法:手指滑动的时候,判断手指滑动的竖向位置,如果到达相应标签的位置(由于标签是fixed定位模式,因此可以拿到每个标签...> HTML5学堂 移动端开发... 模拟手机联系人导航 a~z的拖拽 touchmove的问题

    1.6K50

    实验5 OpenGL二维几何变换

    平移矩阵构造函数为glTranslate(tx, ty, tz),作用是把当前矩阵和一个表示移动物体的矩阵相乘。...theta,vx,vy,vz指定这个旋转物体的矩阵,物体将围绕(0,0,0)到(x,y,z)的直线以逆时针旋转,参数theta表示旋转的角度。...sx,sy,sz指定这个缩放物体的矩阵,分别表示在x,y,z方向上的缩放比例,它们可以是任意的实数值,当缩放参数为负值时,该函数为反射矩阵,缩放相对于原点进行,后缀为f(单精度浮点float)或d(双精度浮点...注意这里都是说“把当前矩阵和一个表示移动物体的矩阵相乘”,而不是直接说“这个函数就是旋转”或者“这个函数就是移动”,这是有原因的,马上就会讲到。...由于“先移动后旋转”和“先旋转后移动”得到的结果很可能不同,初学的时候需要特别注意这一点。

    2.4K10
    领券