LlRotBetween/de

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Beschreibung

Funktion: rotation llRotBetween( vector Anfang, vector Ende );

Gibt die Rotation zwischen der Richtung am Anfang und der Richtung am Ende.

• vector Anfang
• vector Ende

Spezifikationen

Anfang und Ende sind Richtungen relativ zum Ursprung <0.0, 0.0, 0.0>. Wenn Koordinaten relativ zu einem anderen Ursprung vorliegen, subtrahiere den Ursprung von den Eingangsvektoren.

Warnungen

  • Anfang * llRotBetween(Anfang, Ende) == Ende ist nur dann wahr, wenn Anfang und Ende den selben Betrag haben, sowie keiner den Betrag Null hat (siehe #Notizen für eine Abhilfe).
Alle Issues ~ Nach JIRA-Issues suchen, die sich hierauf beziehen

Beispiele

<lsl>llRotBetween(<1.0, 0.0, 0.0>, <0.0, -1.0, 0.0>) // wird <0.00000, 0.00000, -0.70711, 0.70711> zurück geben, (was -90° um die z Achse repräsentiert)

llRotBetween(<0.0, 0.0, 0.0>, <0.0, -1.0, 0.0>) // wird <0.00000, 0.00000, 0.00000, 1.00000> zurück geben (was eine drehung von 0° um alle Achsen repräsentiert),

// da <0.0, 0.0, 0.0> keine Richtung hat.</lsl>

Notizen

Diese Funktion stellt den Betrag der Quaternion so ein, dass Anfang * llRotBetween(Anfang, Ende) == Ende wahr ist, soweit keiner der Vektoren den Betrag Null hat. Sie müssen nicht den selben Betrag haben. <lsl>rotation RotBetween(vector Anfang, vector Ende) //adjusts quaternion magnitude so (start * return == end) {//Notiz des Autors: Ich hatte nie eine Anwendungsmöglichkeit hierzu, aber es ist gut zu wissen, falls man es mal braucht.

   rotation rot = llRotBetween(Anfang, Ende);
   if(Anfang)
   {
       if(Ende)
       {
           float d = llSqrt(llVecMag(Ende) / llVecMag(Anfang));
           return <rot.x * d, rot.y * d, rot.z * d, rot.s * d>;
       }
   }
   return rot;

}//Strife Onizuka</lsl>

Siehe auch

Funktionen

•  llAngleBetween Berechnet den Winkel zwischen zwei Rotationen

Weiterführende Anmerkungen

Nach JIRA-Issues suchen, die sich hierauf beziehen

Signature

function rotation llRotBetween( vector Anfang, vector Ende );
Dieser Artikel war nicht hilfreich für Dich? Vielleicht bringt der zugehörige Artikel im SLinfo Wiki Erleuchtung.