I'm attempting rotate an arrow on the surface of a planet to face the direction it is traveling. I can get the direction vector and the up vector from the surface normal. How would I go about turning this into a quaternion for my arrows rotation. I'm using three.js so any suggested methods they provided that I can use would be useful. Cheers.
The information I have so far.
var upVector = new THREE.Vector3();
upVector.subVectors( new THREE.Vector3(0,0,0), lastVec );
var dirVector = new THREE.Vector3();
upVector.subVectors( lastVec, destVec );
var sideVector = new THREE.Vector3();
sideVector.crossVectors( dirVector, upVector );
var newUp = new THREE.Vector3();
newUp.crossVectors( dirVector, sideVector );