Difference between revisions of "LlRotBetween/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
(correct literal translations)
Line 6: Line 6:
|func_desc
|func_desc
|return_text='''start'''方向と'''end'''方向の間の回転
|return_text='''start'''方向と'''end'''方向の間の回転
|spec='''start'''と'''end'''は原点<0.0, 0.0, 0.0>に相対的な方向です。異なる原点と相対的な構成の場合、入力ベクトルから原点を引き算します。
|spec='''start'''と'''end'''は原点<0.0, 0.0, 0.0>からの相対的な方向です。異なる座標系を使用している場合、入力ベクトルからその座標系の原点を引き算しましょう。
|caveats=*<code>start * llRotBetween(start, end) == end</code>は'''start'''と'''end'''が両方とも0ではない同等の規模の場合のみtrueです。(回避策は[[llRotBetween#Notes]]を参照します)
|caveats=*'''start'''と'''end'''が、両方同じ大きさで、且つ、両方とも大きさが0でない場合のみ、<code>start * llRotBetween(start, end) == end</code>となります。(回避策は[[#Notes]]を参照して下さい。)
|constants
|constants
|examples=
|examples=
Line 22: Line 22:
|also_articles
|also_articles
|notes=
|notes=
この関数はクオータニオンの規模に適応し、つまり<code>start * llRotBetween(start, end) == end</code>はどちらも0でない限りはtrueです。これらは同じ規模にすべきではありません。
この関数は、両パラメータの大きさが0でない場合に、<code>start * llRotBetween(start, end) == end</code>となるように、大きさを調整します。両パラメータを同じ大きさにする必要はありません。
<lsl>rotation RotBetween(vector start, vector end) //adjusts quaternion magnitude so (start * return == end)  
<lsl>rotation RotBetween(vector start, vector end) //adjusts quaternion magnitude so (start * return == end)  
{//Authors note: I have never had a use for this but it's good to know how to do it if I did.
{//Authors note: I have never had a use for this but it's good to know how to do it if I did.

Revision as of 22:08, 3 December 2008

要約

関数: rotation llRotBetween( vector start, vector end );

start方向とend方向の間の回転を rotation で返します。

• vector start
• vector end

仕様

startendは原点<0.0, 0.0, 0.0>からの相対的な方向です。異なる座標系を使用している場合、入力ベクトルからその座標系の原点を引き算しましょう。

警告

  • startendが、両方同じ大きさで、且つ、両方とも大きさが0でない場合のみ、start * llRotBetween(start, end) == endとなります。(回避策は#Notesを参照して下さい。)

サンプル

llRotBetween(<1.0, 0.0, 0.0>, <0.0, -1.0, 0.0>)
// will return <0.00000, 0.00000, -0.70711, 0.70711> (which represents -45 degrees on the z axis)

llRotBetween(<0.0, 0.0, 0.0>, <0.0, -1.0, 0.0>)
// will return <0.00000, 0.00000, 0.00000, 1.00000> (which represents a zero angle on all axis)
// because <0.0, 0.0, 0.0> does not convey a direction.

注意点

この関数は、両パラメータの大きさが0でない場合に、start * llRotBetween(start, end) == endとなるように、大きさを調整します。両パラメータを同じ大きさにする必要はありません。 <lsl>rotation RotBetween(vector start, vector end) //adjusts quaternion magnitude so (start * return == end) {//Authors note: I have never had a use for this but it's good to know how to do it if I did.

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

}//Strife Onizuka</lsl>

関連項目

関数

•  llAngleBetween

特記事項

Search JIRA for related Issues

Signature

function rotation llRotBetween( vector start, vector end );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。