OpenGL几何变换的顺序

OpenGL 二维几何变换实战:glPushMatrix/glPopMatrix 堆栈操作 3 种典型错误分析 本文深入探讨了OpenGL中二维几何变换的核心技术,重点分析了glPushMatrix和glPopMatrix堆栈操作的三种典型错误。通过实际案例和解决方案,帮助开发者避免矩阵状态混乱、嵌套顺序错误和状态残留等问题,提升计算机图形学编程效率。 阅读详情

序

大概是说,几何变换,按这个顺序来,结果最合理

  1. 缩放变换不改变坐标轴的走向,也不改变原点的位置,所以两个坐标系仍然重合。
  2. 旋转变换改变坐标轴的走向,但不改变原点的位置,所以两个坐标系坐标轴不再处于相同走向。
  3. 平移变换不改变坐标轴走向,但改变原点位置,两个坐标系原点不再重合。

这样就可以解释问什么缩放不能在旋转之后,而缩放和旋转都不能在平移之后了。 于是没有问题的顺序只能是 缩放 -> 旋转 -> 平移 。

引用自:

(38条消息) 世界坐标变换要先缩放、后旋转、再平移的原因_pizi0475的博客-优快云博客

写成公式,大概是这样:

就比较迷惑。。这个顺序,代码里先哪样不就是哪样吗?

自己能试试最好了。

OpenGL:二维几何变换① 图形变换的基本原理 ①变换图形就是要变换图形的几何关系,即改变顶点的坐标; ②保持图形的原拓扑关系不变(各个点的连接方式) 仿射变换 图形的仿射变换遵循两点: 1、“平直性”:即直线经过变换后依旧还是直线。 2、“平行性”:二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变。 点、直线、多边形变换的原理 T是指二维变换矩阵 二维几何变换函数 平移 glTranslatef( Tx, Ty, Tz,); 实例: void draw1() { glBegin(GL_POLY 阅读详情

相关推荐

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9801

我的OpenGL学习摘要03_变换_矩阵

LearnOpenGL - Transformations 2个矩阵的乘法 缩放 平移 旋转 绕任意轴(Rx,Ry,Rz)旋转 先缩放再平移 当矩阵相乘时,最右边的矩阵首先与向量相乘,所以应该从右到左阅读乘法。 当组合矩阵时,建议先进行缩放操作,然后进行旋转,最后进行平移, 否则它们可能会相互(负面)影响。例如,如果你先做一个平移,然后缩放,平移向量也会缩放! ...

lamt的博客 155

il2cpp分析-gobal-metadata.dat解密

打开ida,把libil2cpp拖到ida中按快捷键Shift+F12等待字符串分析完后,搜索global-metadata.dat。ida中双击sub_57EE7C进入,VS code中也跳转到LoadMetadataFile函数。VSCode打开il2cpp源代码,全局搜索global-metadata.dat。工具:010Editor,IDA 7.5,Jadx,VS Code。判断加密逻辑为根据文件的长度循环读取字节码做亦或加密。双击搜索出来的结果,切记要选il2cpp目录下的。

Android_machong的博客 8024

OpenGL中模型变换的顺序(验证)

在OpenGL中,模型变换的顺序经常吧初学者搞得一头雾水。以下模型变换顺序是本人验证出来的

gtoyl的博客 790

AISHELL-1中文语音数据集实战:从下载到训练你的第一个ASR模型(附完整代码)

本文详细介绍了如何使用AISHELL-1中文语音数据集从数据准备到训练端到端语音识别模型的全流程。AISHELL-1作为国内首个开源的普通话语音数据集,包含178小时高质量录音,适合中文自动语音识别(ASR)系统开发。文章涵盖数据下载、预处理、Conformer-CTC模型训练、评估及优化策略,并附完整代码实现。

garlic的博客 1118

超实用!VS Code配置C/C++开发环境全攻略

本文提供了一份详细的VS Code配置C/C++开发环境全攻略。从MinGW-w64编译器的选择与安装,到VS Code核心扩展的配置,再到tasks.json构建任务与launch.json调试环境的设置,手把手指导初学者完成从环境搭建到高效开发与调试的全过程,帮助开发者快速上手C/C++项目。

weixin_28829479的博客 184

OpenGL-旋转平移与缩放

OpenGL里面的旋转缩放与平移其实就是坐标系的相关变换,不过由于初学者(像我)很容易被OpenGL里面各种坐标系搞晕而难以理解,现在将我的理解记录如下。PS: 由于学校课程要求,使用的是过时的固定管线。为了清楚地理解这三种变换,我们只关心两个坐标系:建模坐标系和世界坐标系。眼坐标之类的使用默认值。文末有一段程序代码,绘制了一个正方体,并实现了这三种变换。世界坐标系(WC):你现在正对绘图窗口,右方

Focus 3万+

手把手教你用Simulink搭建BPSK调制解调系统(附完整参数设置与波形分析)

本文详细指导如何使用Simulink搭建BPSK调制解调系统,涵盖从理论到实践的全流程,包括参数设置、模块连接和波形分析。重点解析调制解调中的关键参数和常见问题,如带通滤波器设计、载波同步等,帮助读者快速掌握BPSK系统的实现与调试技巧。

weixin_27741699的博客 422

OpenGL中矩阵的平移与旋转的顺序问题

GLfloat m1[16]; glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glTranslatef(-r1[0], -r1[1], 0); glRotatef(theta, rotatev.m_fVec[0], rotatev.m_fVec[1], rotatev.m_fVec[2]);

lc19890326的专栏 8383

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

【PINN物理信息网络】基于PINN物理信息网络结合Wave 2D有限差分方法(python)

k8291121的博客 1818

基于Java的OPC UA Server开发指南:从零开始构建高效服务器

本文介绍了如何使用开源项目org.eclipse.milo创建Java OPC UA Server。通过创建Spring Boot项目,添加Milo SDK依赖,定义Namespace类,服务器启动类以及监听器,详细阐述了建立OPC UA Server服务的步骤。启动后,服务器默认监听地址为opc.tcp://localhost:12685,可使用Softing OPC Client进行连接。

洛阳泰山的博客 3023

OpenGL实战教程(12) -- 第十一站:OpenGL坐标系及平移缩放操作

1、坐标系 常说的坐标系,有三种说法:左手坐标系、右手坐标系、笛卡尔坐标系 左手系:伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。 右手系:伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向。 左手和右手坐标注系的区别在于两者Z轴的方向是相反的。 笛卡尔坐标系: 在数学中使用的三维空间是笛卡尔坐标系 笛卡尔坐标系其实就是右手坐标系,...

x879014419的博客 1412

【WorkBuddy专栏19】技能的创造与迁移——从零开始打造你的AI工作流

【WorkBuddy专栏19】技能的创造与迁移——从零开始打造你的AI工作流

AI人人懂 369

OpenGL Transformation 几何变换的顺序概要(MVP,NDC,Window坐标变换过程)

OpenGL Transformation 几何变换的顺序概要(MVP,NDC,Window坐标变换过程) Geometry transforming or culling sequence: application passing the vertex pos(object space pos) to the shader program。 transforming of clip space pos from object space pos ...

Jave.Lin 的学习笔记 1501

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OpenGL 三维几何变换中对于变换函数和矩阵的理解

目录对变换函数作用范围的疑惑解答: 变换函数作用范围变换的顺序受矩阵运算顺序的影响 最近在学习opengl的几何变换,其中对几何变换函数的作用范围纠结了很久,这里写下心得与大家分享,共同学习。 参考资料:《opengl编程基础(第三版)》第五章 几何变换 对变换函数作用范围的疑惑 平移:glTranslate 旋转:glRotate 缩放:glScale 书上对于这些函数的描述都提到所有顶点...

Meloor的博客 621

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OpenGL 二维几何变换实战:glTranslatef/glRotatef/glScalef 3函数组合绘制三菱标志

本文详细介绍了如何使用OpenGL的glTranslatef、glRotatef和glScalef函数组合实现二维几何变换,以绘制三菱标志为例。通过解析变换矩阵堆栈管理和数学建模,帮助开发者掌握计算机图形学中的基础几何变换技术,并提供了完整的代码实现和视觉化分析。

FLY_THINK2012的博客 352

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

opengl matrix

注: 1.  OpenGL 是以列为主的矩阵存储方式。即(一维线性数组)优先存储矩阵的列。 2.  OpenGL实现的列向量, 当与矩阵相乘时, 是矩阵左乘向量。 (这是按下文描述的说法表述) 注意上下两种表述, 可能导致理解偏差。 其实他们说的是同一个意思。 上面OpenGL命令实际相当于将变形矩阵一个一个的压栈, 最后一个一个 pop栈来与向量相乘, 就形成了NMLv的乘积形式。 而

fanbird2008的专栏 1147

计算机图形学基础:实验5 OpenGL二维几何变换

计算机图形学基础:实验5 OpenGL二维几何变换

weixin_63503933的博客 3045

实验5 OpenGL二维几何变换

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

图形学与可视化 1万+

二维几何变换原理:从齐次坐标到OpenGL 4x4矩阵的3个关键步骤

本文深入解析二维几何变换原理,从齐次坐标到OpenGL 4x4矩阵的3个关键步骤,涵盖平移、旋转和缩放等基本操作。通过详细的数学推导和OpenGL实现示例,帮助开发者掌握CG2中的核心变换技术,提升图形编程能力。

weixin_34005042的博客 340

OpenGL 二维几何变换实战:4个关卡代码解析与矩阵堆栈应用

本文深入解析OpenGL二维几何变换的实战应用,通过四个关卡详细讲解平移、旋转、缩放等矩阵操作与矩阵堆栈管理技巧。从基础变换到复杂的三菱图案实现,帮助开发者掌握CG2中的核心几何变换原理与应用方法,提升计算机图形学开发能力。

weixin_34014555的博客 380

计算机图形学实验三-openG几何图形转换

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

qq_46348492的博客 1073

OpenGL图形编程实战:用glTranslatef和glRotatef画一个三菱Logo(附完整代码)

本文通过OpenGL图形编程实战,详细讲解了如何使用glTranslatef和glRotatef函数绘制三菱Logo。从环境配置、基础绘制到变换顺序的重要性,再到完整实现和调试技巧,帮助开发者深入理解二维几何变换和OpenGL的变换堆栈原理。附完整代码,适合图形编程初学者和进阶者学习。

weixin_30607659的博客 238

头歌实训平台OpenGL作业避坑指南:二维变换那些容易写错的glPushMatrix和glFlush

本文详细解析了头歌实训平台OpenGL二维几何变换中的常见错误,特别是矩阵栈操作和显示刷新问题。通过实例代码和调试技巧,帮助学习者避免glPushMatrix和glFlush等高频错误,提升计算机图形学实践能力。

weixin_32050773的博客 325

OpenGL二维几何变换实战:从基础函数到复合变换的图形构建

本文详细解析了OpenGL二维几何变换的实战技巧,从基础函数glTranslatef、glRotatef和glScalef的使用到复合变换的图形构建。通过丰富的代码示例,如三菱标志的实现,帮助开发者掌握变换顺序、矩阵堆栈等核心概念,提升计算机图形学开发效率。

weixin_34146805的博客 358

OpenGL入门第四次实验 几何变换(一)

链接: https://pan.baidu.com/s/1cBTTbbzRCVBCX_H4jf6qMA 提取码: kj8w 一、实验原理 本次实验利用OpenGL的GLFW库以及glm进行几何变换操作,实现了作业的两个要求。 GLFW是一个用于OpenGL应用程序开发的可移植库。它处理与OpenGL上下文创建、窗口管理、分辨率切换、键盘、鼠标、操纵杆和时间输入以及基本线程设施相关的系统特定任务。 GLEW能自动识别当前平台所支持的全部OpenGL高级扩展涵数。只要包含glew.h头文件,就能使用gl,glu

The_Dan的博客 1693
上一篇: 桌面图标出问题
下一篇: ShaderToy的使用方法
averagePerson
博客等级 码龄5年 381粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值