向量旋转

首先我们需要知道旋转的角度,设为$\theta$

例如把AB旋转到AC,设$\angle XAB = \sigma$, B的坐标(x, y), C的坐标(a, b),半径为R,则

由上式可得 $a = x \times cos(\theta) - y \times sin(\theta), b = y \times cos(\theta) + x \times sin(\theta)$

也就是说我们可以用x来替换$cos(\sigma)$, 用y来替换$sin(\sigma)$,然后根据和角公式进行对应替换就可以了

如果AC角小于AB角也可以用同样的方法进行求解。结果为$a = x \times cos(\theta) + y \times cos(\theta), b = y \times cos(\theta) - x \times sin(\theta)$

在Unity中可以使用Quaternion.LookRotation的方法进行旋转,它的输入就是旋转之后的向量,其中y可以不变,只需要旋转x和z。

欧拉角

欧拉角的定义

欧拉角的万向节死锁

transform

transform