“LlRot2Up”的版本间的差异
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: vector llRot2Up( rotation q ); |参数= 参数:• rota…”) |
|||
第13行: | 第13行: | ||
'''Specification''' | '''Specification''' | ||
在数学上等价于: | 在数学上等价于: | ||
− | ret = llVecNorm(<0., | + | ret = llVecNorm(<0., 0., 1.> * q); |
如果已知q是一个单位四元数,则可简化为: | 如果已知q是一个单位四元数,则可简化为: | ||
ret = <0., 0., 1.> * q; | ret = <0., 0., 1.> * q; |
2020年8月18日 (二) 00:49的最新版本
首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
函数名 |
---|
Function: vector llRot2Up( rotation q ); |
参数:• rotation q |
返回值:计算本地z轴相对于父元素的方向(即相对于根prim或世界)。
返回一个由q定义的向上向量,即一个指向局部正z方向的单位向量 |
注意事项 |
---|
Specification
在数学上等价于: ret = llVecNorm(<0., 0., 1.> * q); 如果已知q是一个单位四元数,则可简化为: ret = <0., 0., 1.> * q; 记住,对象和代理的旋转将永远是单位四元数。例如,<0.0,0.0,1.0>*llGetRot()比llRot2Left(llGetRot())快25-30%,具体取决于使用的VM。如果经常这样做并且速度非常快,甚至可以将<0.0,0.0,1.0>保存为一个本地/全局变量并重用它。 |
示例 |
---|
示例1
//无论物体在世界上的方向如何,当物体被触及时,将物体沿其自身的z轴向前移动5米。 //适用于根或子基本物体 default { touch_start(integer total_number) { vector v = llRot2Up( llGetLocalRot() ); llSetPos( llGetLocalPos() + v * 5 ); } } |
相关函数 |
---|
llRot2Axis |
相关事件 |
---|
无 |