Difference between revisions of "LlAxes2Rot/ja"

From Second Life Wiki
Jump to navigation Jump to search
m
 
(7 intermediate revisions by 4 users not shown)
Line 2: Line 2:
|func_id=17|func_sleep=0.0|sort=Axes2Rot|func_energy=10.0
|func_id=17|func_sleep=0.0|sort=Axes2Rot|func_energy=10.0
|func=llAxes2Rot|sort=Axes2Rot
|func=llAxes2Rot|sort=Axes2Rot
|func_footnote=全ての3つのベクトルは互いに直交する単位ベクトルでなければなりません。
|func_footnote=全ての 3 つのベクトルは互いに直交する単位ベクトルでなければなりません。
|return_type=rotation
|return_type=rotation
|p1_type=vector|p1_name=fwd
|p1_type=vector|p1_name=fwd
|p2_type=vector|p2_name=left
|p2_type=vector|p2_name=left
|p3_type=vector|p3_name=up
|p3_type=vector|p3_name=up
|return_text=3つの座標軸で定義されて
|return_text=3 つの座標軸で定義される回転
|notes=技術的には、最初の2つのベクトルだけがこの呼び出されるであろう回転の定義には必要とされます。
|notes=技術的には、最初の 2 個のベクトルだけが回転を導き出すのに必要で、これらのうちのいずれかを呼び出すことで行うことができます。
<pre>llAxes2Rot(fwd, left, fwd % left);</pre>
<source lang="lsl2">llAxes2Rot(fwd, left, fwd % left);
llAxes2Rot(left % up, left, up);
llAxes2Rot(fwd, up % fwd, up);</source>
|spec
|spec
|caveats
|caveats
|examples=<lsl>
|examples=<source lang="lsl2">default
default
{
{
     state_entry()
     state_entry()
Line 25: Line 26:
         llSay(0, (string) (llRot2Euler(rot) * RAD_TO_DEG) );
         llSay(0, (string) (llRot2Euler(rot) * RAD_TO_DEG) );
     }
     }
}</lsl>
}</source>


このスクリプトはこのように表示します。
このスクリプトはこのように表示します。
   Object: <-0.00000, 0.00000, 90.00000>
   Object: <-0.00000, 0.00000, 90.00000>
表示する('''j''', '''-i''', '''k''')は、Z方向周囲の90度回転('''i''', '''j''', '''k''')によって求められます。
これはZ 軸を中心として ('''i''', '''j''', '''k''') を 90 度回転させることで ('''j''', '''-i''', '''k''') が得られることを表しています。
|helpers
|helpers
|also_functions
|also_functions
|also_events
|also_events
|also_tests
|also_tests=
{{LSL_DefineRow||[[User:Dora_Gustafson/llAxes2Rot_right_and_wrong|Visual illustration]]|互いに直交する単位ベクトルの重要性について}}
|also_articles
|also_articles
|cat1=Math/3D/ja
|cat1=Math/3D
|cat2=Rotation/ja
|cat2=Rotation
|cat3
|cat3
|cat4
|cat4
}}
}}

Latest revision as of 14:12, 25 February 2016

要約

関数: rotation llAxes2Rot( vector fwd, vector left, vector up );

3 つの座標軸で定義される回転を rotation で返します。

• vector fwd
• vector left
• vector up

全ての 3 つのベクトルは互いに直交する単位ベクトルでなければなりません。

サンプル

default
{
    state_entry()
    {
        vector i = < 1.0, 0.0, 0.0>;
        vector j = < 0.0, 1.0, 0.0>;
        vector k = < 0.0, 0.0, 1.0>;

        rotation rot = llAxes2Rot( j, -i, k );

        llSay(0, (string) (llRot2Euler(rot) * RAD_TO_DEG) );
    }
}

このスクリプトはこのように表示します。

  Object: <-0.00000, 0.00000, 90.00000>
これはZ 軸を中心として (i, j, k) を 90 度回転させることで (j, -i, k) が得られることを表しています。

注意点

技術的には、最初の 2 個のベクトルだけが回転を導き出すのに必要で、これらのうちのいずれかを呼び出すことで行うことができます。

llAxes2Rot(fwd, left, fwd % left);
llAxes2Rot(left % up, left, up);
llAxes2Rot(fwd, up % fwd, up);

特記事項

Search JIRA for related Issues

テスト

•  Visual illustration 互いに直交する単位ベクトルの重要性について

Signature

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