Translate & Rotate (平移和旋转组合变换)
按照正常的理解,先平移和先旋转没什么区别吧,但是经测试,的确是有很大的区别的。甚至是结果完全的不同。示例如下:
先画一个方块绕着中心点自转。
// SQUARE A // Save the current matrix. gl.glPushMatrix(); // Rotate square A counter-clockwise. gl.glRotatef(angle, 0, 0, 1); // Draw square A. square.draw(gl); // Restore the last matrix. gl.glPopMatrix();// 恢复了变换矩阵
然后再画一个方块B绕着方块A做旋转,正常代码(先旋转再平移)应该如下:
// SQUARE B // Save the current matrix gl.glPushMatrix(); // Rotate square B before moving it, making it rotate around A. gl.glRotatef(-angle, 0, 0, 1); // Move square B. gl.glTranslatef(2, 0, 0); // Scale it to 50% of square A gl.glScalef(.5f, .5f, .5f); // Draw square B. square.draw(gl); gl.glPopMatrix();
但是如果先平移再旋转:
gl.glTranslatef(2, 0, 0);// 先平移 gl.glRotatef(-angle, 0, 0, 1);//再旋转
就造成方块A和方块B同轴旋转了。
再有旋转
public abstract void glRotatef (float angle, float x, float y, float z)
中参数X,Y,Z是一个整体,应该是(x,y,z)的向量坐标。
原理性的问题进一步了解中。
相关推荐
"初识 FLASH 动画" 本课程旨在初识 FLASH 动画,旨在培养学生信息素养,通过小组协作、任务驱动教学方式,引导学生深入分析问题最终找到解决问题的方法和技术,即运用逐帧实现动画,理解动画原理且表现作品。 教学...
### Elasticsearch 初识与简单案例 #### 一、Elasticsearch简介 Elasticsearch 是一款基于 Lucene 的分布式全文搜索引擎,具有高度可扩展性及灵活性。它不仅支持文本搜索,还能进行复杂的数据分析任务,因此在众多...
初识C++ 初识C++ 初识C++初识C++初识C++初识C++初识C++
初识 Flash 动画软件 本教案的主要目的是让学生初步了解 Flash 动画软件的基本概念和操作方法,通过实践和探究,掌握 Flash 动画的制作过程和相关概念。 一、导入 * 启动 Flash 的方法和认识 Flash 工作界面 * ...
初识动画制作,FLASH的初识,可以帮助你了解FLASH,为进一步的学习做基础
在第一章"初识Elasticsearch"中,我们将了解到Elasticsearch的基本概念,包括它的分布式特性、RESTful API以及数据模型。这部分内容会讲解如何安装和启动Elasticsearch服务器,以及如何通过简单的命令进行索引创建、...
《八年级信息技术初识动画软件课件教学》 在八年级的信息技术课程中,学生将接触到动画软件的基础知识,特别是以Adobe Flash为代表的动画制作工具。本课件旨在帮助学生了解Flash的基本概念、应用领域以及动画制作...
初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算
python 列表初识,通过此代码,你能够了解到python的列表操作
1. ELASTICSEARCH 初识 Elasticsearch(简称ES)是一款基于Lucene的开源分布式搜索引擎,以其强大的全文检索、实时分析和高可扩展性而闻名。它不仅用于传统的搜索功能,还广泛应用于日志分析、监控、物联网(IoT)...
jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识...
三年级信息技术课程《初识画图》课件内容 因为要参加比赛,所属机房 装不上
初识C语言.pdf
初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识...
初识ERP初识ERP
Scratch是一款由美国麻省理工学院(MIT)专为8至16岁青少年设计的图形化编程工具,它以其友好的界面和丰富的功能,使得初学者也能轻松地创作动画、游戏和其他互动项目。Scratch软件的标志是一只可爱的小猫图标,通过...
**初识jQuery** jQuery是一个广泛应用于Web开发的JavaScript库,它的设计目的是简化HTML文档遍历、事件处理、动画以及Ajax交互。自2006年发布以来,jQuery因其易用性和丰富的功能集,成为了开发者们的首选工具之一...