Jump to content

Search the Community

Showing results for tags 'rotation'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • People Forum
    • Your Avatar
    • Make Friends
    • Lifestyles and Relationships
    • Role Play
    • General Discussion Forum
    • Forums Feedback
    • Missed Connections
    • Second Life Education
  • Places and Events Forum
    • Favorite Destinations
    • Upcoming Events and Activities
    • Games in Second Life
  • Official Contests & Events
    • Leap Into Love Snapshot Contest
  • Creation Forum
    • Fashion
    • Art, Music and Photography
    • Animation Forum
    • Bakes on Mesh
    • Environmental Enhancement Project
    • Machinima Forum
    • Building and Texturing Forum
    • Mesh
    • LSL Scripting
    • LSL Library
    • Sansar for Second Life Residents
  • Technology Forum
    • Second Life Server
    • Second Life Viewer
    • Second Life Web
    • General Second Life Tech Discussion
  • Commerce Forum
    • Merchants
    • Inworld Employment
    • Wanted
  • Land Forum
    • General Discussion
    • Mainland
    • Linden Homes
    • Regions for Sale: Full Private Island
    • Region for Rent: Full Private Island
    • Regions for Sale: Homesteads
    • Region Rentals: Homestead
    • Parcels for Sale: Mainland
    • Parcels for Rent: Mainland
    • Wanted: Full Private Island
    • Wanted: Homesteads
    • Wanted: Mainland
  • International Forum
    • Deutsches Forum
    • Foro en español
    • Forum in italiano
    • Forum français
    • 日本語フォーラム
    • 한국어 포럼
    • Fórum em português
    • Forum polskie
    • المنتدى العربي
    • Türkçe Forum
    • Форум по-русски
  • Adult Content Forum
    • Highlight Upcoming Events
    • General Discussion
    • General Announcements
  • Answers
    • Abuse and Griefing
    • Account
    • Avatar
    • Creation
    • Inventory
    • Getting Started
    • Controls
    • Land
    • Linden Dollars (L$)
    • Shopping
    • Technical
    • Viewers
    • Everything Else
    • International Answers


  • Commerce
  • Featured News
  • Inworld
  • Tools and Technology
  • Tips and Tricks
  • Land


  • English
  • Deutsch
  • Français
  • Español
  • Português
  • 日本語
  • Italiano
  • Pусский
  • Türkçe

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



About Me

Found 20 results

  1. Hello! Is it possible to alter the script of the aviation speedometer, showing the horizontal speed in the speedometer, showing the vertical speed by rotating the texture?
  2. I came across Quaternions in Second Life and after a struggle to understand them gave up. But, after looking at this video just once (so far) an understanding has begun to dawn. So i thought I would offer it to others who have stumbled onto SL's Quaternions as a path to understanding them: Youtube, Quanta. However, I have not yet achieved Quaternion nirvana. I'm still working on transferring the above to SL and Blender implementations. But.... Progress!!
  3. Hello, please help with the script. I make a speedometer and a compass and I decided to make them square planes. Script uses llSetLinkPrimitiveParamsFast. I got this texture repeats on corners. I decided to reduce the scale a little and leave a blank space on the sides so that when rotating at the corners the texture does not repeat. But I need to set the zoom. What do I need to add to this line to make it happen? Thanks a lot for any help. if(COMPASS_PRIM) llSetLinkPrimitiveParamsFast(COMPASS_PRIM, [ PRIM_TEXTURE, 1, "32865340-5893-3e24-c4a0-b511d39246c3", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, PI_BY_TWO]); ..................................................................... llSetLinkPrimitiveParamsFast(COMPASS_PRIM, [PRIM_TEXTURE, 0, "c6a241dd-709a-bf10-e7d0-b2bf49930d2a", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, our_direction_angle_rad * -1]);
  4. Using the official SecondLife viewer, is there a way to set my controls so that when I press left or right to turn my avatar, they continue rotating more than 1/16th of a rotation before the rotation drastically slows down? This makes it very, very difficult to walk around.
  5. I built a mesh house all linked and I placed scripts in the doors. When the door is touched the camera moves making it appear like you were bumped. I tried changing scripts and its still doing it. I changed the doors and its still doing it. I'm so confused, I've never had this happen before in one of my builds.
  6. I have a script that I've been using on a drawbridge that works great. Then I moved the drawbridge to a new location and the bridge is reorienting itself to North - South whenever it is operated. I'm assuming something is wrong with my math in the orientation function. I'm hoping that someone can pinpoint what it is for me... thank you in advance. Here's is my orientation function that I'm using... rotation slerp(rotation source,rotation target,float amount) { return llAxisAngle2Rot(llRot2Axis(target/=source),amount*llRot2Angle(target))*source; }
  7. Hiya folks -- I have a large pendulum and am using the Dora Gustafson, Studio Dora swing script (below) from the outworlds script library. The text prims are set up and linked as such: pendulum (cube prim, tapered at the bottom), then a cylinder stretched out on z that acts like a rod and at the top, a small cube that is the root and contains the swing script. it works okay, i had to adjust the angle and the steps in the swing script to decrease the swing angle and slow it down -- well, it works mostly okay, it can be kinda jerky every now and then but I can live with that for now. What I'd like to do next is to rotate the root cube so the pendulum continues to swing but via the root, will also slowly rotate within a circular space on the ground so that if you attached a pencil to the pendulum end, it would act like a kind of spirograph. Not sure how to incorporate the rotation of the root prim into the swing script. I plopped in a target omega line of code but it didn't do anything - I'm guessing because I have no clue what I"m doing and that I read somewhere and can't find it there is a specific target omega for physical objects. (?) in an absolutely perfect world, the swing script would also randomly change the angle so that would alter the length of the path / lines. Appreciate any help. Thank you! This is the swing script: // :SHOW: // :CATEGORY:Pendulum // :NAME:Pendulum // :AUTHOR:Dora Gustafson, Studio Dora // :KEYWORDS: // :CREATED:2015-11-24 20:38:39 // :EDITED:2015-11-24 19:38:39 // :ID:1094 // :NUM:1870 // :REV:1 // :WORLD:Second Life // :DESCRIPTION: // Will swing a prim like a simple pendulum pivoting at an axis parallel to the prim's Y-axis // :CODE: // Pendulum motion by Dora Gustafson, Studio Dora 2012 // Will swing a prim like a simple pendulum pivoting at an axis parallel to the prim's Y-axis // The pivot axis will be at the top of a prim with the Z-axis pointing up // Quote from http://en.wikipedia.org/wiki/Pendulum_(mathematics) // • A simple pendulum is an idealization of a real pendulum using the following assumptions: // • The rod or cord on which the bob swings is massless, inextensible and always remains taut; // • Motion occurs only in two dimensions, i.e. the bob does not trace an ellipse but an arc. // • The motion does not lose energy to friction or air resistance. // The periode time increase with the Z dimension (the pendulum length)... // If it is too small the motion will not be well because of the time limitation with Key Framed Motions // The parameters set in the script works nice with a 3m long pendulum // If the pendulum is moved, rotated or resized the script must be reset to update the motion float angle=1.0; // max swing from resting (radians) //I CHANGED THIS TO 0.35 float steps=12.0; // number of Key Frames //I CHANGED THIS TO 48.0 float step=0.0; list KFMlist=[]; vector U; vector V; float angleU=0.0; float angleV; integer swing=TRUE; vector basePos; rotation baseRot; default { state_entry() { llSetMemoryLimit( llGetUsedMemory()+0x1000); llSetPrimitiveParams([PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_CONVEX]); basePos = llGetPos(); baseRot = llGetRot(); vector v1 = llGetScale(); float periode = TWO_PI*llSqrt( v1.z/9.81); float dT = periode/steps; dT = llRound(45.0*dT)/45.0; if ( dT < 0.11111111 ) dT = 0.11111111; v1.x = 0.0; v1.y = 0.0; v1 = -0.5*v1*llGetRot(); U = v1; while ( step < steps ) { step += 1.0; angleV = angle*llCos( TWO_PI*step/steps + PI_BY_TWO); V = v1*llAxisAngle2Rot(llRot2Fwd(llGetRot()), angleV); KFMlist += [V-U, llEuler2Rot(< angleV-angleU, 0.0, 0.0>), dT]; angleU = angleV; U = V; } } touch_start( integer n) { llSetKeyframedMotion( [], []); llSleep(0.2); llSetPrimitiveParams([PRIM_POSITION, basePos, PRIM_ROTATION, baseRot]); if ( swing ) llSetKeyframedMotion( KFMlist, [ KFM_MODE, KFM_LOOP]); swing = !swing; } on_rez( integer n) { llResetScript(); } }
  8. At first it seemed not too difficult to tackle the following problem, but in the end I did not manage to do it. Rotations are the story of my (second) life :-) The problem: I have an object consisting of several prims. When someone touches the object i would like to point one of the childprims to the avatar who touched the object. See attached picture. The rotation of (only!) that childprim only need to be done around in its XY-plane, so only a rotation around its Z-axis. Does anyone has a working solution? Thanks in advance for any help.
  9. Hello! Help, please, with particles. I have a script, but it always emits particles in one direction, no matter how I rotate the object. How to make the emission change the direction when the object rotates (attached or rezzed)? Is this difficult? Thank you! ---------+--------- The problem solved. Just had to use 'cone' instead of 'angle'.
  10. I want to make a script that makes me push the person who comes near me , I used llSensorRepeat and set range to 0.7 , But i can't figure out the position/rotation to push, I want my avi to push the person and return back , I need help how to use llPushObject(llGetOwner(), . . .) , Can't find the direction/position of my target. I used llDetectedPos(i) and llGetPos() then llVecNorm to get the normalized vector and then used that as direction but still not working good.
  11. I tend to get turned around any time rotations come into play I'm using the following code to point an objects x axis towards a target position and moving it to it via llMoveToTarget and it works just fine however I want it to actually stop .5 meters short of the actual target, can anybody point me in the right direction laughs... Next() { index++; if (index >= llGetListLength(targets)) { index=0; } target = llList2Vector(targets,index); mytarget = llTarget( target, .3 ); float dist=llVecDist(target,llGetPos()); integer speed2=6 - llList2Integer(speeds,index); llMoveToTarget( target, speed2*(dist/4)); vector pos = llGetPos(); llRotLookAt( llRotBetween( <1.0,0.0,0.0>, llVecNorm( <target.x,target.y,pos.z> - pos ) ), 1.0, .2); } }

    Rotate at an angle

    Hello! Help please who can! I need to make the object (of a supposedly cylindrical shape) to rotate at an angle of 45 degrees to the root about a constant fixed axis. As if it were a globe on a stand. Should I use this script or something like that? default { state_entry() { llTargetOmega(<1.0,0.0,0.0>*llGetRot(),0.1,0.01); } } Many many many many thanks! _________________________________________________________________ Ok i think i found an answer! This is what needed. Works well so far!
  13. I need two static buttons what can move(rotate) my prim left/right side. Maybe someone can explain to me what wrong? Thanks for your answers. Troubles: only 1 button move object. move all objects. Button: { touch_start(integer k) { llSay(11111, "Rot1"); llResetScript(); } } Root: integer count; default { state_entry() { count = 1; state p; } } state p { state_entry() { llListen(11111, "Rot1", "", "Rot1"); } listen(integer channel, string name, key id, string message) { rotation rot = llGetRootRotation(); vector euler = llRot2Euler(rot); euler *= RAD_TO_DEG; euler += <0, 0, 15>; llSay(0, (string) euler); euler *= DEG_TO_RAD; rot = llEuler2Rot (euler); llSetRot( rot ); } }
  14. I have a mountain tram and found an excellent script to get it up the mountain. The problem is that before it begins moving, the whole tram flips 90 degrees on its side and 180 degrees around so that is goes up the mountain sideways and backwards. I am new at this and I do not know what to do. Here is the script integer direction; integer curPoint; list points; string route; integer nextStation =-1; integer isPaused; float OFFSET=0; float SPEED = 1.75; //meters /second vector INITROTATION=<0,0.0>; float WATERHEIGHT = 20.05; integer channel = -9453; list messages; list delays; list messageTimes; integer curMessage; beginRoute(list points) { llSetKeyframedMotion( [], []); //llSetRot(ZERO_ROTATION); llSleep(0.3); messageTimes = []; curMessage = 0; OFFSET=(float)llGetObjectDesc(); vector pos = llList2Vector(points,0); llSetRegionPos(pos); llSetRot(llEuler2Rot(INITROTATION)); rotation rot = llEuler2Rot(INITROTATION); integer i; list kf; float totTime =0; messageTimes = []; for (i=0; i < llGetListLength(points); i++) { vector v = llList2Vector(points, i); rotation r2 = llEuler2Rot(INITROTATION); if (i < llGetListLength(points)-1) { vector vn = llVecNorm(llList2Vector(points, i+1) - v); // break rotation in 2 parts: along Z, then along the rest. llRotBetween would turn the train upside-down vector v2 = vn; v2.z =0; rotation r2a = llRotBetween(<1,0,0>, v2); // Rotation along the Z axis only rotation r2b = llRotBetween(<1,0,0>*r2a, vn); r2 = r2a*r2b; //llRotBetween(<1,0,0>,vn); } else { r2 = rot; //v.y -= OFFSET; // boat Parking offset } vector cor = llRot2Euler(r2); if (cor.x == -PI) cor.x = PI; //cor.x=0; // Remove any rotation around X r2 = llEuler2Rot(cor); float t; if (i>0) { kf += (1.0)*(v-pos); kf += ZERO_ROTATION; t = llVecMag(v-pos)/SPEED; //adjust for speed kf += t*(1.0); rotation myrot = llRotBetween(<1,0,0>*rot, <1,0,0>*r2); kf += ZERO_VECTOR ; kf += r2 / rot; // myrot; //llEuler2Rot(<0,cor.y,0>); kf += .5; } else // the zero-th frame is just a rotation { kf += ZERO_VECTOR; kf += (r2/rot); kf += 2; //adjust for speed t = 2; } kf += ZERO_VECTOR; kf += ZERO_ROTATION; float delay = llList2Float(delays, i); kf += delay; //adjust for speed t += delay; totTime+= t; pos = v; rot = r2; messageTimes += (t+1 ); } //llLoopSound("paddle", 1.0); llSetKeyframedMotion( kf, [KFM_DATA, KFM_TRANSLATION|KFM_ROTATION, KFM_MODE, KFM_PING_PONG]); llMessageLinked(LINK_SET, 0, "START", ""); llStopSound(); llSleep(.1); llLoopSound("train", 1.); } doStop() { isPaused = !isPaused; if (isPaused) llSetKeyframedMotion( [], [KFM_COMMAND, KFM_CMD_PAUSE]); else llSetKeyframedMotion( [], [KFM_COMMAND, KFM_CMD_PLAY]); if (isPaused) { llMessageLinked(LINK_SET, 0, "STOP", ""); llStopSound(); } else { llMessageLinked(LINK_SET, 0, "START", ""); llLoopSound("train", 1.); } } default { state_entry() { llSitTarget(ZERO_VECTOR, ZERO_ROTATION); llListen(channel,"", "",""); llMessageLinked(LINK_SET, 0, "STOP", ""); } listen(integer chan, string n, key sender, string cmd) { if (cmd == "Pause/Cont") { doStop(); } else if (cmd == "PANIC") { llSetKeyframedMotion([], []); llStopSound(); llSetTimerEvent(0); } else if (cmd == "Reset11") { list lines = llParseString2List(osGetNotecard("route"), ["\n"], []); integer j=0; { list tk = llParseString2List(llList2String(lines,j), ["|"], []); vector p= llList2Vector(tk,0); // llSay( 0, (string)p); llSetRegionPos(p); llSetRot( llEuler2Rot(INITROTATION)); } } else if (cmd == "Reset") { list lines = llParseString2List(osGetNotecard("route"), ["\n"], []); integer j; points = []; delays = []; messages = []; for (j=0; j < llGetListLength(lines); j++) { list tk = llParseString2List(llList2String(lines,j), ["|"], []); points += llList2Vector(tk,0); delays += llList2Float(tk,1); messages += llList2String(tk,2); } beginRoute(points); } } touch_start(integer n) { if (llDetectedKey(0) == llGetOwner()) llDialog(llDetectedKey(0), "Select", ["Reset", "Pause/Cont", "PANIC", "CLOSE"], channel); } changed(integer change) { if (change & CHANGED_LINK) { integer i; for (i=2; i < llGetNumberOfPrims(); i++) if (llAvatarOnLinkSitTarget(i) != NULL_KEY) // llGetNumberOfPrims() > llGetObjectPrimCount(llGetKey())) { llSetTimerEvent(2); // llOwnerSay("Seated"); return; } { //else llSetTimerEvent(0); } } } timer() { integer i; for ( i=0; i < llGetListLength(points); i++) { if (llVecDist(llGetPos(), llList2Vector(points,i))< 7) { // llOwnerSay("PT = "+i); if (i != nextStation) { string s = llList2String(messages, i); if (s != "") { llWhisper(0 , "/me <<" +s+ ">>"); llTriggerSound("dingdong", 1.0); } nextStation = i; return; } } } } }
  15. hoping someone has done something like this before.. setup: it's for an OCD build, you touch a picture until it hangs straight. When you touch the picture, it rotates -45 degrees on the X axis, next touch, it rotates to +30 degrees on the X axis, then -15 degrees, and finally goes to Zero Rotation and gives a msg in local that the pic is finally straight. this works ok when the Z axis is zero, but as soon as the Z axis is changed, the pic is tilted and no longer straight when facing the toucher. ( there needs to be some rotation on the Y axis to correct this? ) **the actual code uses a random number and a variable ...tog = 1 ... llSetRot( llGetRot() * llEuler2Rot( <(llFrand(18.0) + 1.0) * (tog = -tog), 0, 0> * DEG_TO_RAD )); Thanx for any help or advice
  16. When attaching a HUD (for example, the HUD to select hair colors), my system head spins to face backwards. I have to relog in order to get it to face forward again. Any ideas why this is happening, and what I can do to prevent it? Thanks, Princess Ivory
  17. hello i have try to compare 2 rotation variables and no luck can anyone give me avise? both variables has this value <0.00000, 0.00000, 0.38268, 0.92388> i all ready check it using llownersay i am using some code like this rotation myQuatRot = llEuler2Rot(<0.0,0.0,45.0> * DEG_TO_RAD); list temp = llGetLinkPrimitiveParams(1,[ PRIM_ROT_LOCAL ] ); rotation r = llList2Rot( temp,0); if (myQuatRot == r) llOwnerSay(" MATCH"); Thanks for any help
  18. I have a simple linked object (see picture) with the colors representing the positive axes. The cylinder is in the same orientation as the colored boxes with +Z at the top face. The two boxes and the cylinder are all rotated at <0, 30, 0> with respect to the root (the white prim) and share the same center of rotation. The root is at zero rotation. The cylinder must rotate in increments on its local X axis. Now, imagine that the cubes are children of the cylinder (how I wish we had proper parenting in SL!). When the cylinder rotates in X, the cubes will follow. Also easy to implement and is simply a matter of doing the same rotation on the cubes in the SLPPF call. integer id_of_cyl = 2; rotation Rx = llEuler2Rot (<1.0, 0.0, 0.0> * DEG_TO_RAD); rotation O; rotation new_rot; integer count; for (count = 0; count < 10; count++) { O = llList2Rot (llGetLinkPrimitiveParams (id_of_cyl, [PRIM_ROT_LOCAL]), 0); new_rot = Rx * O; llSetLinkPrimitiveParamsFast (id_of_cyl, [PRIM_ROT_LOCAL, new_rot]); } In addition to rotating with the cylinder, the cubes must also rotate on their local Z axis. Again, this is easy and is the same solution as to what I've already written. The issue is that both rotations should happen at the same time. Limiting movement to one axis works for both axes. Rotating the cubes on both axes at once produces unexpected rotation around the Y axis. I (obviously naively) thought that it was a matter of composing the rotations like so: integer id_of_cyl = 2; integer id_of_box1 = 3; integer id_of_box2 = 4; rotation Rx = llEuler2Rot (<1.0, 0.0, 0.0> * DEG_TO_RAD); rotation Rz = llEuler2Rot (<0.0, 0.0, 1.0> * DEG_TO_RAD); rotation O_cyl; rotation O_box; rotation new_cyl_rot; rotation new_box_rot; integer count; for (count = 0; count < 10; count++) { O_cyl = llList2Rot (llGetLinkPrimitiveParams (id_of_cyl, [PRIM_ROT_LOCAL]), 0); O_box = llList2Rot (llGetLinkPrimitiveParams (id_od_box1, [PRIM_ROT_LOCAL]), 0); new_cyl_rot = Rx * O_cyl; new_box_rot = Rz * Rx * O_box; llSetLinkPrimitiveParamsFast (LINK_SET, [PRIM_LINK_TARGET, id_of_cyl, PRIM_ROT_LOCAL, new_cyl_rot, PRIM_LINK_TARGET, id_of_box1, PRIM_ROT_LOCAL, new_box_rot, PRIM_LINK_TARGET, id_of_box2, PRIM_ROT_LOCAL, new_box_rot]); } Based on research I've done, the error is due to a problem with the order applying the rotations. However, with a orientation and two rotations, there can only be 12 ways to combine them, and I've tried them all, and all exhibit some degree of error. As a sanity check, here are the orders I've tried. O = current local rotation... Rz * Rx * O Rx * Rz * O Rz * O * Rx Rx * O * Rz O * Rx * Rz O * Rz * Rx (Rz * Rx) * O (Rx * Rz) * O (Rz * O) * Rx (Rx * O) * Rz (O * Rx) * Rz (O * Rz) * Rx I must be missing something (well I'm sure I'm missing something!) Could someone point out my error and save my sanity please?
  19. Hello, i have seach but no luck, i need to be able to find in all the links prims the rotation, to fix it in case is move if i have 80 prims linked and some of them the rotation has move i like to seach in all the links which are the one are move so i can fix it (maybe with same script will be great) here is and example of 4 prims and one is move rotation, i need to be able to find using a script https://gyazo.com/638f6598a614dd3d070e78b8ef613d7f Thanks so much for any help
  20. Hi there. I''m making a script where a non-physical sculptie in the shape of a floating skull is wandering around. Problem, is the skull is facing a direction different from the direction it's travelling. I tried llLookAt, but the skull then moves around it's z-axis, meaning it's top is pointed toward the destination instead of the face. Anyone know how to make it so that it's oriented correctly, or how to find a rotation to make it face the right direction?
  • Create New...