复制到一个表面上,随机旋转,有方向
N旋转跳跃.gif
下载场景:文件:rotate_around_n.hipnc
崎岖地形上的树木,更大的猪上的猪,球体上的图形鸡,通常的钻头。坐在一个表面上很容易,分散,继承@N,复制的对象将把它们的z轴指向@N。要围绕@N 随机旋转它们,您可以使用随机@up,但是我们想要一些更可控的东西?
您可以分两步完成此操作;使用二面角创建一个矩阵,将 {0,0,1} 向量旋转到 @N,然后围绕 @N 旋转该矩阵。将该矩阵转换为@orient,您就完成了。
matrix3 m = dihedral({0,1,0},@N);
rotate(m, @Time+rand(@ptnum)*ch('rot_rand'), @N);
@orient = quaternion(m);
我相信有一种更有效的方法,如果您知道,请与我们联系!(更新:有,见下文……)