normal transform
2014-12-28 09:31
100 查看
conclusion:
if T is orthogonal
n' = Tn
else
n' = inverse(transpose(T))n
Proof:
normal n, arbitray point p1, p2 on plane.
dot(n, (p1- p2)) = 0 ==> transpose(n)(p1 - p2) = 0 ① (matrix version of dot)
so transpose(n')(p1' - p2') = 0
==> transpose(n')(Tp1 - Tp2) = 0
==> transpose(n')T(p1 - p2) = 0 ②
① ② ==> transpose(n) = transpose(n')T
==> n = transpose(T)n'
==> n' = inverse(transpose(T))n
if T is orthogonal
n' = Tn
else
n' = inverse(transpose(T))n
Proof:
normal n, arbitray point p1, p2 on plane.
dot(n, (p1- p2)) = 0 ==> transpose(n)(p1 - p2) = 0 ① (matrix version of dot)
so transpose(n')(p1' - p2') = 0
==> transpose(n')(Tp1 - Tp2) = 0
==> transpose(n')T(p1 - p2) = 0 ②
① ② ==> transpose(n) = transpose(n')T
==> n = transpose(T)n'
==> n' = inverse(transpose(T))n
相关文章推荐
- 浅谈Unity中的rotation和Quaternion的乘法
- Vector3——简单的3D向量类
- Unity ScriptingAPI Vector3学习
- Vector3.Slerp 球形插值详解
- unity3d问题集 <2> 对Vector3.Lerp 插值的理解
- C#之自定义Vector3
- Unity 之Vector3的球形插值Slerp详解
- 两点之间划线【交流贴】
- 关于函数Vector3.Lerp差值函数的理解记录
- Unity3D Vector3.Dot 点乘 与 Vector3.Cross 叉乘
- unity3d中用四元数 Quaternion来对一个坐标点进行旋转的初步体会
- unity 判断物品是否出现在角色面前
- 学习TabControl
- mfc
- 但是 同时
- Xcode磁盘空间大清理(转)
- JavaScript设计模式之代理模式介绍
- Access中替代case when的方法 .
- mysql3
- [leetcode 82] Remove Duplicates from Sorted List II