Difference between revisions of "LlAngleBetween/ja"

From Second Life Wiki
Jump to navigation Jump to search
m (カテゴリ変更)
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{LSL_Function/ja
{{Issues/SVC-2424}}{{LSL_Function/ja
|func_id=174|func_sleep=0.0|func_energy=10.0
|func_id=174|func_sleep=0.0|func_energy=10.0
|func=llAngleBetween|sort=AngleBetween
|func=llAngleBetween|sort=AngleBetween
Line 9: Line 9:
|spec
|spec
|caveats
|caveats
|examples
|examples=
<source lang="lsl2">
default
{
    touch_start(integer num_detected)
    {
        rotation currentRootRotation = llGetRootRotation();
        float angle = llAngleBetween(ZERO_ROTATION, currentRootRotation);
 
        // PUBLIC_CHANNEL has the integer value 0
        llSay(PUBLIC_CHANNEL,
            "llAngleBetween(ZERO_ROTATION, " + (string)currentRootRotation + ") = " + (string)angle);
    }
}
</source>
|helpers
|helpers
|also_functions={{LSL DefineRow||{{LSLG/ja|llRotBetween}}}}
|also_functions={{LSL DefineRow||{{LSLG/ja|llRotBetween}}}}
Line 17: Line 31:
|also_articles
|also_articles
|notes
|notes
|deepnotes=<lsl>float AngleBetween(rotation a, rotation b)
|deepnotes=<source lang="lsl2">float AngleBetween(rotation a, rotation b)
{
{
     return 2.0 * llAcos((a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s)
     return 2.0 * llAcos((a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s)
               / llSqrt((a.x * a.x + a.y * a.y + a.z * a.z + a.s * a.s)
               / llSqrt((a.x * a.x + a.y * a.y + a.z * a.z + a.s * a.s)
                       * (b.x * b.x + b.y * b.y + b.z * b.z + b.s * b.s)));
                       * (b.x * b.x + b.y * b.y + b.z * b.z + b.s * b.s)));
}</lsl>
}</source>
|cat1=Math/3D/ja
|cat1=Math/3D
|cat2
|cat2
|cat3
|cat3
|cat4
|cat4
}}
}}

Revision as of 11:04, 21 February 2016

要約

関数: float llAngleBetween( rotation a, rotation b );

2 つの rotation 値 a, b 間の角度を float で返します。

• rotation a rotation 値 A
• rotation b rotation 値 B

警告

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   llAngleBetween() is sometimes inaccurate

サンプル

default
{
    touch_start(integer num_detected)
    {
        rotation currentRootRotation = llGetRootRotation();
        float angle = llAngleBetween(ZERO_ROTATION, currentRootRotation);

        // PUBLIC_CHANNEL has the integer value 0
        llSay(PUBLIC_CHANNEL,
            "llAngleBetween(ZERO_ROTATION, " + (string)currentRootRotation + ") = " + (string)angle);
    }
}

関連項目

関数

•  llRotBetween
•  llRot2Angle 同様の機能で軸角度形式を求める

特記事項

float AngleBetween(rotation a, rotation b)
{
    return 2.0 * llAcos((a.x * b.x + a.y * b.y + a.z * b.z + a.s * b.s)
               / llSqrt((a.x * a.x + a.y * a.y + a.z * a.z + a.s * a.s)
                      * (b.x * b.x + b.y * b.y + b.z * b.z + b.s * b.s)));
}

All Issues

~ Search JIRA for related Issues
   llAngleBetween() is sometimes inaccurate

Signature

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