我正在尝试开发基于手势的转换功能。
我对于通过自己的支点合并许多转换矩阵感到困惑。
实际上我正在尝试使用这样的函数:
matrix4x4 transform(matrix4x4 prevMatrix, vector3 pivot, vector3 deltaTranslation, float deltaRotation, float deltaScale){
'magic is here..
}
'First call
var temp = transform(identity, (.5,.5,0), (0.1,0.2), 0.1, 105deg);
renderCanvas(temp);
'Second call
temp = transform(temp, (0, 0), (-1, 2), -.8, 120deg);
renderCanvas(temp);
当我在画布上应用矩阵变换(第一次调用)时,它起作用,因为没有先前的旋转或缩放。
但是对于第二次调用,由于旋转,翻译看起来在错误的轴上(例如,你向右滑动,但你看到画布翻译到底部)
那么,是否有任何解决方案,或者我应该更清楚?