惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Security Blog
Microsoft Security Blog
P
Proofpoint News Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
F
Full Disclosure
Martin Fowler
Martin Fowler
G
Google Developers Blog
F
Fortinet All Blogs
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
阮一峰的网络日志
阮一峰的网络日志
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Tailwind CSS Blog
Cloudbric
Cloudbric
U
Unit 42
MyScale Blog
MyScale Blog
TaoSecurity Blog
TaoSecurity Blog
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
博客园 - Franky
AI
AI
爱范儿
爱范儿
L
LangChain Blog
小众软件
小众软件
D
DataBreaches.Net
M
MIT News - Artificial intelligence
GbyAI
GbyAI
Y
Y Combinator Blog
有赞技术团队
有赞技术团队
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
The Cloudflare Blog
Help Net Security
Help Net Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Docker
A
About on SuperTechFans
Scott Helme
Scott Helme
The GitHub Blog
The GitHub Blog
V
V2EX
N
Netflix TechBlog - Medium
S
Security Affairs
Security Archives - TechRepublic
Security Archives - TechRepublic
H
Heimdal Security Blog
WordPress大学
WordPress大学

博客园 - David Fan

JigLib类简介 3DS 文件格式 AGAL2 how to use UVAnimator to animate my mesh uv? 顶点着色器&像素着色器 AGAL OBJ文件格式 md5mesh&md5anim Box2D&Away3D结合的例子 光照模型 仿照实现的away3d4示例应用 利用away3d,jiglibflash在android实现的投骰子 虚拟手柄控制的小车 air3.4 Android IPones4s 下运行正常 实现了一个简单的AS3 MVC框架,希望对大家有所帮助! 负责的一个项目上线了,还有Flex捐给apache是好事! 转-flex自定义组件 ExternalInterface在Flex Project中C#,C++通信使用上的不同 - David Fan vs2008beta2 javascript 智能感知,语法着色不工作。付解决办法。 我正在读和已经读过的书(随时更新心得,欢迎交流)
矩阵、欧拉角、轴-角对、四元数随笔
David Fan · 2012-11-13 · via 博客园 - David Fan

一、矩阵
  在 3D 游戏中,可以使用矩阵来表示一个物体的旋转。
  1) 优点:
    个人认为,理解起来最为直观。
    像现成的DXSDK库中也提供了十分完善的相关接口
    一个矩阵即可表示多种变换的组合
  2) 缺点:
    每次计算都会产生误差,因此,需要经常规范化。
    耗的内存较多些。
    
二、欧拉角
  欧拉角指的是:以世界坐标系为参考坐标系(一定记住是世界坐标系),使用x,y,z三个值来分别表示绕(世界的)x轴、y轴、z轴旋转的角度量值。其取值是在[0, 360]间。一般用roll, pitch, yaw来表示这些分量的旋转值。因为是以世界坐标系为参考坐标系,因此每一次的旋转都不会影响到后续的旋转转轴。即:它无法表示任意轴的旋转。
  1) 优点:
    理解起来很直观。
  2) 缺点:
    会有万向锁问题。
    
三、轴-角对
  其实轴-角对与欧拉角(个人认为)是有一定的关系的。因为欧拉角说的是分别(注意:是分别)绕(以世界坐标系为参考坐标系的)三个轴旋转一定的角度。其实这三次的旋转可以最终转换到一次变换。即:最终可表示为:绕某一旋转轴旋转一定角度的变换。(意思就是说:那三次变换我们最终可以计算出旋转轴以及绕该旋转轴旋转的角度量)。
  1) 缺点:
    轴-角对表示法:插值不平滑,可能会有跳跃。(文档上说,欧拉角同样存在这个问题)
  2) 优点:
    可解决欧拉角的万向锁问题。
    
四、四元数
  四元数定义:q = w + xi + yj + zk
  
  注意:
    1) 四元数可以归一化,并且只有归一化的四元数才用来描述旋转
    2) 四元数与轴-角对很像。因为四元数描述的也是一个旋转轴与一个绕着该旋转轴旋转的量值(即:角度或弧度)。但四元数与轴-角对不等价。它们的关系如下:
      假如:轴-角对的值如下:
      轴为:n
      角为:theta
      则,对应的四元数中的w、x、y、z的值分别为:
      w = cos(theta / 2)
      x = nx * sin(theta / 2)  // nx 是轴 n 的 x 分量
      y = ny * sin(theta / 2)  // ny 是轴 n 的 y 分量
      z = nz * sin(theta / 2)  // nz 是轴 n 的 z 分量

    3) 四元数的乘法意义:
    Q = Q1 * Q2表示的是:Q先做Q2的旋转,再做Q1的旋转的结果,而且多个四元数的旋转也是要以合并的。
    4) 四元数做一次乘法需要16次乘法和加法,而3x3矩阵需要27次。所以有多次旋转操作时,使用四元数计算效率更高些。
    5) 四元数的插值过度平滑。最常用的是线性插值。