新快照17w50a新增了局部坐标(暂时翻译成这个吧),用来标记相对玩家视野的左、上、前位置。
当玩家的Rotation为 [rx,ry]时,即自上而下顺时针自南旋转rx ,自水平向下ry时,玩家的局部坐标(记为l,u,f)在相对坐标系(x,y,z)下的坐标为
l: (cos rx,0,sin rx)
u: (-sin rx sin ry, cos ry, cos rx sin ry)
f: (-sin rx cos ry, -sin ry, cos rx cos ry)
即 ^l ^u ^f 等价于 ~x ~y ~z, 如果
x=l cos rx -u sin rx sin ry-f sin rx cos ry
y=u cos ry-f sin ry
z=l sin rx+u cos rx sin ry+f cos rx cos ry
或
l=x cos rx +z sin rx
u=-x sin rx sin ry+y cos ry+z cos rx sin ry
f=-x sin rx cos ry-y sin ry+z cos rx cos ry
即luf到xyz的转换矩阵为
(cos rx -sin rx sin ry -sin rx cos ry)
(0 cos ry -sin ry )
(sin rx cos rx sin ry cos rx cos ry)
本人不保证计算的准确性,谁有空就重新计算一下吧……