OpenGL图形变换——几何变换(世界变换)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

图形变换是计算机图形学中的重要内容,大体上又可以分为三类:几何变换、坐标变换和显示变化。

以下为图形变换流程:

其中比较常用的基本几何变换有平移(glTranslationf)、缩放(glScalef)和旋转(glRotatef)等,其中旋转与平移组合又可以形成公转或自转的效果,即旋转点不同。

以下是关于OpenGL基本几何变换实验的程序(以nehe OpenGL为整体框架)部分关键代码,其完成了窗口中绘制一个四面体,并使其左右平移、周期旋转和缩放。

//定义以下变量控制对象的运动(即在窗口中绘制的位置)

GLfloat  rtri=0.0f; //旋转角度
GLfloat  i=0.0f; //缩放比例
GLfloat  x=0.0f; //临时变量
GLfloat  y=0.0f; //对象沿x轴平移的位置变量
GLfloat  z=0.0f; //临时变量

int DrawGLScene(GLvoid) //用于窗口绘制的函数
{

利用 VC++OpenGL 作为开发平台设计程序,以能够在屏幕上生成任意一个像素点,利用像素点绘制基本图形菱形 #include <GL/glut.h> #include<Windows.h> void init (void)  {    glClearColor (1.0, 1.0, 1.0, 0.0);   glMatrixMode (GL_PROJECTION);// 投影   gluOrtho2D (-5.0, 5.0, -5.0, 5.0); //设置显示的范围是X:-5.... 阅读详情

相关推荐

2D-3D 转换中,为什么世界坐标要扩充成四维, 图像坐标要扩充成三维

在计算机视觉和图形学中,将世界坐标扩充成四维,以及图像坐标扩充成三维,是为了便于运用齐次坐标(homogeneous coordinates)进行坐标变换。这样的做法简化了投影变换的数学表示和计算,特别是在三维场景和二维图像间的转换中。

Fitz的博客 1240

OpenGL之几何、投影、裁剪、视口变换以及全局变换与局部变换

opengl 图形编程技术。

TxyITxs的博客 2497

二维/三维图形几何变换(基于OpenGL

支持二维和三维图形几何变换代码,变换包括平移、旋转、对称、投影、错切等

OpenGL() 变换

尽管我们现在已经知道了如何创建一个物体、着色、加入纹理,给它们一些细节的表现,但因为它们都还是静态的物体,仍是不够有趣。我们可以尝试着在每一帧改变物体的顶点并且重配置缓冲区从而使它们移动,但这太繁琐了,而且会消耗很多的处理时间。我们现在有一个更好的解决方案,使用(多个)矩阵(Matrix)对象可以更好的变换(Transform)一个物体。当然,这并不是说我们会去讨论武术和数字虚拟世界(译注:Mat...

无提丶的博客 1966

Visual Studio+Opengl剖析()——Opengl图形变换

计算机图形是将世界中或意识中的形态抽象为显示模式,建模到计算机显示过程中,隐式的大致经过了几何变换、投影变换、裁剪变换、视口变换过程,我们才能在计算机可视化区域内看到图形;场景中显示的部分称为窗口或裁剪窗口,此区域外的场景均要裁去,只有在窗口内部的图形才能显示到屏幕上,将窗口映射到显示设备上的坐标区域称为视区;变焦距:将不同尺寸的窗口映射到固定尺寸的视区中缩放:固定窗口尺寸,改变视区的大小1、几何变换建模变换图形的生成过程)的过程都为几何变换

yyyyyyview的博客 495

OpenGL入门教程之 变换

这是一个闪耀的时刻,因为我们即将能生产出令人惊叹的3D效果!

少年的博客 2164

OpenGL中关于组合变换的理解

最近计算机图形学上的一头雾水,在看红宝书的时候看到一个机器人手臂的例子,感觉对理解局部坐标系很有帮助。记录一下学习过程。 首先我们知道在opengl中有各种坐标系。其中比较重要的是世界坐标系和对象坐标系。初始状态,世界坐标系和对象坐标系重合,而我们做出几何变换如缩放移动旋转等,对象坐标系就会发生变化,之后我们绘制的图形也会基于当前的坐标系。 void display7() { ...

ruozhalqy的博客 536

从‘三菱’标志绘制到游戏开发:聊聊OpenGL几何变换的几种实际应用场景

本文探讨了OpenGL几何变换在游戏开发、UI框架和数据可视化等领域的实际应用。从教学案例中的三菱标志绘制出发,详细解析了平移、旋转、缩放等基础操作在工业级项目中的价值,帮助开发者理解计算机图形学的核心思想及其在复杂场景中的灵活运用。

weixin_33704234的博客 205

OpenGL坐标系

转自http://blog.csdn.net/testing2007/article/details/7392210 OpenGL坐标系   OpenGL使用右手坐标 从左到右,x递增 从下到上,y递增 从远到近,z递增 OPENGL坐标系可分为:世界坐标系和当前绘图坐标系。 世界坐标系以屏幕中心为原点(0, 0, 0)。你面对屏幕,你的右边是x正轴

fantasy4086的专栏 1099

关于在Opengl中先平移后旋转和先旋转后平移的效果不一样的原因

一、现象 在OpenGL中先移动后旋转与先旋转后移动的最终效果是并不一定相同的,也就是说在Opengl中如果调用函数glTranslatef和函数glRotatef的次序不同,即使参数一样,效果也可能会不同。下面我们通过两段程序说明该问题。 二、代码 如下所示,在vs2015中新建Win32程序: 输入以下代码: #include <windows.h>...

崔杰城的博客 5293

OpenGL常识汇总

OpenGL常识汇总主题:这里将收集一些OpenGL中的常识。在日常生活中,我们积累生活常识越多,我们的生活就会越方便。同样的道理,如果我们积累的OpenGL常识越多,我们的开发过程就会越轻松。当列举这些常识的时候,我会尽量找到充分的,权威的资料去证明常识的正确性。通常情况下,我会摘抄经典书籍中的原话作为证据。闲话少数,现在就开始吧。1.坐标系在计算机图形学中有关于坐标系的内容。常见的

Computer Graphics Changes Your Life 3159

OpenGL 坐标转换

OpenGL绘图过程中,需要通过模型转换

magicyang的专栏 603

OpenGL基础图形编程

转自:http://blog.csdn.net/iduosi/article/details/7835624 一、OpenGL与3D图形世界 1.1、OpenGL使人们进入三维图形世界   我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体。我们又生活在一个充满信息的世界中,能否尽快地理解并运用这些信息将直接影响事业的成败,所以

ACM Dream 1741

计算机图形学实验五:OpenGL下的几何变换

本来是一个简单的二维变换的题目,老师说做完让他看,于是逐渐加了诸多要求 题目描述 绘制如下图形: 提示: (1)写一个绘制菱形的函数drawDiamond(void); void drawDiamond(void) //绘制中心在原点的菱形 { glBegin (GL_POLYGON); //顶点指定需要按逆时针方向 glVertex2f (0.0f,-1.0f);//下点 glVertex2f (2.0f,0.0f);//右点 glVertex2f (0.0f, 1.0f).

Leon14138的博客 5976

opengl二维几何变换实例

opengl二维几何变换 opengl提供的几何变换函数和绘图函数是完全分开的,并没有指定一个变换矩阵然后再绘图的API。 opengl是先使用几何变换函数,此时相当于永久改变了坐标系,此后的所有绘图操作都相当于在新坐标系下进行。 如 glTranslatef(100, 100, 0); 相当于把当前坐标轴向x轴正向和y轴正向同时移动100个单位,此后所有的绘图函数都参照此新坐标系进行。此时如果在新坐标系原点绘制一个点,相当于在原坐标系的(100,100)处绘制一个点 opengl一共有四个矩阵栈,应用于不

o83290102o5的博客 5767

实验5 OpenGL二维几何变换

1.实验目的: 理解并掌握OpenGL二维平移、旋转、缩放变换的方法。 2.实验内容: (1)阅读实验原理,掌握OpenGL程序平移、旋转、缩放变换的方法。 (2)根据示范代码,完成实验作业。 3.实验原理: (1) OpenGL下的几何变换OpenGL的核心库中,每一种几何变换都有一个独立的函数,所有变换都在三维空间中定义。 平移矩阵构造函数为glTranslate<f,d>(tx, ty, tz),作用是把当前矩阵和一个表示移动物体的矩阵相乘。tx、ty、tz指定这个移动物体的矩阵

图形学与可视化 1万+

opengl三维几何变换实例

引言 > 接上一篇 要在opengl中显示三维物体需要将投影模式设置为透视 如gluPerspective(45, 1, 0, 100); 第一个参数为fov角,第二个参数是宽高比,后两个参数分别是最近可视距离和最远可视距离 #include<glut.h> int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GL

o83290102o5的博客 3427

OpenGL(三)图形变换几何变换

通常,为了把一组图形融合为一个场景,必须把他们按照批次之间的关系和与观察这的关系排列起来,这就要用到变换变换使得能够把3D坐标投影到2D场景成为可能,变换包括旋转对象,移动对象,甚至拉伸、压缩和玩去他们, 变换修改的是坐标系。 通过演示一个三角形进行的平移、旋转和缩放等变换,学习相关知识点。 #include #include #include //默认视角:在原点往z轴负方向看 v

爱拼才会赢 1万+
上一篇: 利用OpenGL在窗口上绘制出三维坐标
Carnnation
博客等级 码龄12年 5粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值