probiner

Vector Dir Slerp VEX two methods

Jul 29th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.57 KB | None | 0 0
  1. // axis angle
  2.  
  3. float angle (vector a, b){
  4. return acos(dot(normalize(a),normalize(b))) ;
  5. }
  6.  
  7. vector mtCross (vector a, b){
  8. matrix3 mt = lookat(0, -b, a) ;
  9. return {1,0,0} * mt ;
  10. }
  11.  
  12. vector dirLerp (vector a, b; float blend){
  13. vector4 quat = quaternion(angle(a,b) * blend, mtCross(a,b)) ;
  14. return qrotate(quat, a) ;
  15. }
  16.  
  17. // dihedral slerp
  18.  
  19. vector dirLerp (vector a, b; float blend; matrix3 rot){
  20. vector4 quat = quaternion(dihedral(a,b)) ;
  21. quat = slerp({0,0,0,1}, quat, blend) ;
  22. rot = qconvert(quat) ;
  23. return qrotate(quat, a) ;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment