Difference between revisions of "Slerp"
Jump to navigation
Jump to search
Line 6: | Line 6: | ||
</dl> | </dl> | ||
Written by Francis Chung, Taken from http://forums.secondlife.com/showthread.php?p=536622 | |||
<lsl> | <lsl> | ||
rotation slerp( rotation a, rotation b, float f ) { | rotation slerp( rotation a, rotation b, float f ) { | ||
float angleBetween = llAngleBetween(a, b); | float angleBetween = llAngleBetween(a, b); |
Revision as of 10:17, 1 February 2007
-
Slerp is shorthand for spherical linear interpolation, introduced by Ken Shoemake in the context of quaternion interpolation for the purpose of animating 3D rotation. It refers to constant speed motion along a unit radius great circle arc, given the ends and an interpolation parameter between 0 and 1.
Written by Francis Chung, Taken from http://forums.secondlife.com/showthread.php?p=536622 <lsl> rotation slerp( rotation a, rotation b, float f ) {
float angleBetween = llAngleBetween(a, b); if ( angleBetween > PI ) angleBetween = angleBetween - TWO_PI; return a*llAxisAngle2Rot(llRot2Axis(b/a)*a, angleBetween*f);
} </lsl>