Objekt in Richtung eines anderen Objektes rotieren

3 years 9 months ago - 2 years 4 months ago #12 by Jules Dreki


  • Posts: 3

  • Gender: Unknown
  • Birthdate: Unknown
  • Ein Problem das man in LSL/OSSL zum Glück nicht "zu Fuss" mit Vektor-/Matrizenrechung und der Eulerschen Drehmatrix lösen
    muß. Die folgende URL erklärt das sehr schön, wie einfach sich das lösen lässt. :-)

    www.virtualverse.one/forums/threads/kept...-another-object.178/

    Codeschnipsel:
    vector SF_spos = <x,y,z>; //start position
    vector SF_epos = <x,y,z>; //end position
    
    float fDistance = llVecDist(<SF_epos.x,SF_epos.y,0>,<SF_spos.x,SF_spos.y,0>;);//XY Distance
    rotation rotZ = llRotBetween(<1,0,0>,llVecNorm(<fDistance, 0, SF_epos.z - SF_spos.z>;));//up/down rotation
    rotation rotXY = llRotBetween(<1,0,0>,llVecNorm(<SF_epos.x - SF_spos.x,SF_epos.y - SF_spos.y,0>;));//left/right rotation
    rotation absRot = rotZ*rotXY; //absolute rotation
    llSetRot(absRot);


    Möchte man statt dem Befehl llSetRot() lieber llSetKeyframedMotion() benutzen ist noch ein Schritt notwendig. Anders als llSetRot() erwartet llSetKeyframedMotion() relative Parameter.

    rotation relRot = absRot/llGetRot();
    llSetKeyframedMotion( [
    <0.0, 0.0, 0.0>, relRot, 1.0
    ], );
    Last edit: 2 years 4 months ago by Jules Dreki.

    Please Log in or Create an account to join the conversation.

    Time to create page: 0.095 seconds
    Powered by Kunena Forum

    We have 1639 guests and no members online


    swissgrid.opensim.ch

    © Swissgrid 2018-2022 Impressum:
     Admin: Night Raven    Sili Gal
         CH-8952 Schlieren/ZH