目前我正在处理以下问题。我正在使用 javascript,我不能(也不想)使用任何第三方 .js 库。
我正在编写一个函数,我在输入上有两个标准转换矩阵 - A 和 B:
var A = [
[a, c, e],
[b, d, f],
[0, 0, 1]
];
var B = [
[a, c, e],
[b, d, f],
[0, 0, 1]
];
以及介于或等于 0 和 1 之间的 theta 值 T。数字 a、b、c、d 对应于旋转和缩放,而 e 和 f 等于 x 和 y 位置。
我需要在这两个矩阵之间进行插值,我想知道,什么是最好的方法(性能方面),因为这个函数会经常被调用。我已经使用 lerp 整理了 x 和 y 部分。现在我想知道什么是最不密集的方法来做到这一点。这些是我到目前为止找到的选项:
- 第一个选项 - 使用四元数和 slerp - 从我在网上找到并从我的同事那里听到的信息,这个选项涉及大量计算。我对这种方法也不是很熟悉,也不知道如何实现它以适应这种情况。
- 第二个选项 - 分解这两个矩阵,获取 A 和 B 的平移、旋转和缩放值并存储它们,然后通过 T 处理这些并计算结果矩阵。
有没有其他方法可以减少我错过的 CPU 密集度?