难度和期末差不多,curve平均分 to 80,如果高会有extra credit
15
Fd=[RYR100d101]
Then,
Fd=HF10H=Fd(F10)−1
rotate with arbitrary vector
trans, rot, trans back
拓展:Olinde Rodrigues formula
vrot=vcosθ+(k×v)sinθ+k(k⋅v)(1−cosθ)
构造绕任意向量 u 旋转角度 θ 的旋转矩阵是经典的计算机图形学问题。以下是基于罗德里格旋转公式 (Rodrigues' rotation formula) 的实现方法,以及扩展为齐次变换矩阵的方法:
- 向量 u=[ux,uy,uz] 必须是一个单位向量。如果 u 未归一化,需要先归一化: u←∥u∥u
罗德里格公式将旋转矩阵 RR 表示为:
R=I+sin(θ)K+(1−cos(θ))K2
其中:
- II 是单位矩阵
- KK 是 u 的反对称矩阵:K=0uz−uy−uz0uxuy−ux0
最终旋转矩阵为:
R=cos(θ)+ux2(1−cos(θ))uyux(1−cos(θ))+uzsin(θ)uzux(1−cos(θ))−uysin(θ)uxuy(1−cos(θ))−uzsin(θ)cos(θ)+uy2(1−cos(θ))uzuy(1−cos(θ))+uxsin(θ)uxuz(1−cos(θ))+uysin(θ)uyuz(1−cos(θ))−uxsin(θ)cos(θ)+uz2(1−cos(θ))
或者分步法
- 将旋转轴u绕x轴旋转至xoz平
- 面
- 将旋转轴u绕y轴旋转至于z轴重合
- 绕z轴旋转角
- 执行步骤2的逆过程
- 执行步骤1的逆过程
15
R0U=[u^Xu^Yu^Z]=10000−10−10
R1U=R0UR10
P1U=R0UP10
30
求一段的Catmul Rom Spline
让段首的斜率, parallel to x axis
S0=[1,0,0]T
b1=b0+31S0
f(u)=b0B03(u)+b1B13(u)+b2B23(u)+b3B33(u)
dudf(u)=3(b1−b0)B2(u)+
de Casteljau
40
7*3+1*3=24
root有translational的DOF *3
35
IK problem, take a
Method 1
Lerp get each desired position, and IK (like limb-based)
Method 2
get quaternion and slerp
Figure out desired position, and IK