Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- float angle180(vector a, b){
- return cos(clamp(dot(normalize(a), normalize(b)),-1,1)) ;
- }
- vector crossM(vector a, b){
- return {1,0,0} * lookat(0,-a,b) ;
- }
- vector alignrot(vector pos, a, b ; float lerp){
- return qrotate(quaternion(angle180(a,b) * lerp, crossM(a,b)), pos);
- }
- http://www.rhinohouse.com
- vector b = {1,0,0} ;
- vector e = {-1,0,0} ;
- vector axis = {1,0,0} * lookat(0,-b,e) ;
- float angle = acos(clamp(dot(normalize(b), normalize(e)),-1,1)) ;
- vector4 quat = quaternion(angle*ch("blend"), axis) ;
- vector pos = @P ;
- pos = qrotate(quat, pos) ;
- @P = pos ;
Advertisement
Add Comment
Please, Sign In to add comment