You should look into THREE.Quaternion.slerp
and THREE.Vector3.lerp
methods.
Slerp stands for "spherical linear interpolation" while lerp stands for "linear interpolation".
A matrix then has to be constructed by three based on these two, but three handles this internally if you set myObject3D.position
and myObject3D.quaternion
.
If your starting point is a matrix4, you can decompose
it into quaternions and vectors, and then compose
one from the new results. If you want just the end result in a matrix you can use makeRotationFromQuaternion( quaternion )
followed by setPosition( position )
.