LlScaleByFactor

来自人工智能助力教育知识百科
Mkx讨论 | 贡献2020年8月19日 (三) 02:34的版本 (创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: integer llScaleByFactor( float scaling_factor ); |参数=…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: integer llScaleByFactor( float scaling_factor );
参数:• float scaling_factor –该乘法器将与基本物体大小及其局部位置一起使用。
返回值:尝试通过scaling_factor调整整个对象的大小,保持prim的大小位置比率。

调整大小要受prim规模限制和可链接性限制。如果链接集是物理的、关键帧运动中的寻路字符,或者调整大小会导致包溢出,则此函数不能调整对象的大小。

如果执行成功,返回一个布尔值(一个整数),如果执行失败,返回FALSE。

注意事项
由于浮点精度问题(通常是sqrt(x*x) != x),避免通过llGetMinScaleFactorllGetMaxScaleFactor返回的值进行重新排序。要保证重新缩放成功,请稍微在这些函数返回的限制内使用值。
示例
示例1
//触摸这个脚本会使对象的大小加倍或减半。
integer growing;
 
default
{
    state_entry()
    {
        llSay(PUBLIC_CHANNEL, "Touch to toggle scale.");
    }
 
    touch_start(integer num_detected)
    {
        growing = !growing;
 
        float min_factor = llGetMinScaleFactor();
        float max_factor = llGetMaxScaleFactor();
 
        llSay(PUBLIC_CHANNEL, "min_scale_factor = " + (string)min_factor
                            + "\nmax_scale_factor = " + (string)max_factor);
 
        integer success;
 
        if (growing) success = llScaleByFactor(2.0);
        else         success = llScaleByFactor(0.5);
 
        if (!success) llSay(PUBLIC_CHANNEL, "Scaling failed!");
    }
}
相关函数
llScaleByFactor

llGetMaxScaleFactor

llGetMinScaleFactor

相关事件