如何计算物体的旋转指向point3

时间:2015-08-03 17:56:07

标签: vector rotation trigonometry maxscript

如何找到茶壶的旋转值,以便在应用新的旋转值时,茶壶指向茶壶自身局部空间中的球体(点3)。

这是起始场景的样子: enter image description here

这是我想要实现的目标: enter image description here

初步尝试:

delete objects
target = sphere pos:[20,20,20] radius:2
n = teapot radius:2 pos:[6,35,0]
rotate n (angleaxis -68.2351 [0.808965,0.587747,0.0113632])

dist = n.pos - target.pos
vec = normalize dist
upVecLocal = n.transform.row3 -- local up vector 
dp = dot vec upVecLocal
t = acos dp
newDir = cross upVecLocal dist

n.dir = newDir
toolMode.coordsys #local
select n

1 个答案:

答案 0 :(得分:0)

不确定您要实现的目标,但我认为最佳解决方案是非脚本化的:在茶壶上添加一个约束条件:

  1. 选择茶壶
  2. 转到“动作”标签(方向盘,左起第4个)
  3. 选择“旋转”按钮,然后单击树视图上方的按钮,其中包括“变换”,“位置”,“旋转”和“缩放”。
  4. 选择球体作为Look At Target
  5. 现在,如果您移动球体,它将旋转并跟随。