LlAxisAngle2Rot
De DigiWiki.
(Différences entre les versions)
(Page créée avec « <lsl> default { state_entry() { vector axis = <0.0, 0.0, 1.0>; float angle = 90.0 * DEG_TO_RAD; rotation rot = llAxisAngle2Rot(axis, angle); … ») |
|||
Ligne 11 : | Ligne 11 : | ||
llOwnerSay((string) euler); | llOwnerSay((string) euler); | ||
//Says <0.0, 0.0, 90.0> since it is rotating 90 degrees on the Z axis caused by the 1.0 placed in the Z vector spot. | //Says <0.0, 0.0, 90.0> since it is rotating 90 degrees on the Z axis caused by the 1.0 placed in the Z vector spot. | ||
+ | } | ||
+ | } | ||
+ | </lsl> | ||
+ | |||
+ | ==== Sinppet ==== | ||
+ | <lsl> | ||
+ | rotateFromStartToFinish(integer N,rotation startRot,rotation endRot) | ||
+ | { | ||
+ | rotation B = (ZERO_ROTATION/startRot)*endRot; | ||
+ | vector axis = llRot2Axis(B); | ||
+ | float angle = llRot2Angle(B); | ||
+ | |||
+ | integer j; | ||
+ | |||
+ | for(j = 0; j <= N, ++j) | ||
+ | { | ||
+ | llSetRot(startRot*llAxisAngle2Rot(axis,((float)j)/((float)N)*angle)); | ||
} | } | ||
} | } | ||
</lsl> | </lsl> |
Version du 23 août 2013 à 01:24
default { state_entry() { vector axis = <0.0, 0.0, 1.0>; float angle = 90.0 * DEG_TO_RAD; rotation rot = llAxisAngle2Rot(axis, angle); vector euler = llRot2Euler(rot) * RAD_TO_DEG; llOwnerSay((string) euler); //Says <0.0, 0.0, 90.0> since it is rotating 90 degrees on the Z axis caused by the 1.0 placed in the Z vector spot. } }
Sinppet
rotateFromStartToFinish(integer N,rotation startRot,rotation endRot) { rotation B = (ZERO_ROTATION/startRot)*endRot; vector axis = llRot2Axis(B); float angle = llRot2Angle(B); integer j; for(j = 0; j <= N, ++j) { llSetRot(startRot*llAxisAngle2Rot(axis,((float)j)/((float)N)*angle)); } }