跟月影学可视化
月影
前奇虎 360 奇舞团团长,可视化 UI 框架 SpriteJS 核心开发者,《JavaScript 王者归来》作者
30206 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 54 讲
跟月影学可视化
15
15
1.0x
00:00/00:00
登录|注册

22 | 如何用仿射变换来移动和旋转3D物体?

四元数与轴角
单位四元数
万向节锁问题
欧拉角顺规
三个旋转矩阵
实现旋转的3D陀螺效果
使用四元数旋转几何体
渲染几何体
加载纹理图片
加载几何模型
四元数
欧拉角
齐次矩阵表示
缩放变换
平移变换
推荐阅读
小试牛刀
实际应用
三维旋转变换
三维仿射变换
如何用仿射变换来移动和旋转3D物体?

该思维导图由 AI 生成,仅供参考

你好,我是月影。
在前面的课程里,我们学习过使用仿射变换来移动和旋转二维图形。那在三维世界中,想要移动和旋转物体,我们也需要使用仿射变换。
但是,仿射变换该怎么从二维扩展到三维几何空间呢?今天,我们就来看一下三维仿射变换的基本方法,以及怎么对它进行优化。
三维仿射变换和二维仿射变换类似,也包括平移、旋转与缩放等等,而且具体的变换公式也相似。
比如,对于平移变换来说,如果向量 沿着向量 平移,我们只需要让 加上 ,就能得到变换后的坐标。
再比如,对于缩放变换来说,我们直接让三维向量乘上标量,就相当于乘上要缩放的倍数就可以了。最后我们得到的三维缩放变换矩阵如下:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何使用仿射变换和欧拉角来移动和旋转3D物体,以及如何避免万向节锁的问题。首先介绍了三维仿射变换的基本方法和优化,包括平移、旋转和缩放等操作。对于旋转变换,详细介绍了使用欧拉角来描述三维物体的旋转变换矩阵,以及欧拉角的概念和表示方法。然后,通过实际例子演示了如何在OGL框架中加载飞机几何模型和纹理图片,并进行渲染。文章还介绍了四元数的使用,以及如何用四元数来处理轴角,避免万向节锁的问题。最后,鼓励读者尝试利用放射变换来实现旋转的3D陀螺效果,并分享给朋友们一起实现。整体来说,本文通过简洁清晰的语言和实际示例,帮助读者快速了解了如何使用仿射变换和欧拉角来移动和旋转3D物体的技术特点。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《跟月影学可视化》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • DasonCheng
    3D里面有几个概念不是很清楚,“模型“可以理解为空间坐标的集合,通常由工业软件(maya、c4d、3ds-max等)制作生成,并进行三角分片,此阶段的模型称为“低模”。为了使效果真实,会加上材质、纹理、贴图,法线可以辅助光照模拟自然环境下的光影变化。shader是否可以完成材质、纹理这些效果?之所以直接贴图是否是为了节省计算资源,直接用位图替代,而这个位图是在“高模”的基础上进行其他制作后导出的图片?能否麻烦月影大佬介绍一下3D模型的常见概念及彼此之间的关系。

    作者回复: 这个留待专门介绍3D渲染的课程吧,偏游戏方向了,对于可视化来说,3D只是其中一部分。

    2020-10-21
    2
  • 不见飞刀
    让一个物体绕另一个物体的中心旋转应该如何表示呢

    作者回复: 一般三维不能只绕一个点旋转,还是需要绕一个轴,也就是过一个物体中心点的一个向量旋转。

    2020-09-08
    1
  • 皮特尔
    欧拉角为什么要分成 Proper Euler angles 和 Tait–Bryan angles 两种?有什么讲究吗?

    作者回复: 没什么特别讲究,就是两种不同的记法

    2020-08-19
    1
  • Sam
    麻烦问下,模型转josn这块有什么工具可以推荐

    作者回复: github上应该有一些不错的开源库

    2020-09-10
  • H
    期待老师 再出新课!
    2022-01-07
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部