【发布时间】:2020-01-10 01:06:58
【问题描述】:
我正在使用 translateZ 函数,以便相机可以沿其观察方向向前/向后移动。但是 translateZ 相对移动它。所以camera.translateZ(10); 后跟另一个camera.translateZ(10); 将使相机总共移动20 个单位。因此,我不能在补间动画中使用它,在该动画中我对该函数内部的参数进行补间。
所以我想知道是否有一种方法可以在绝对坐标中沿 Z 平移,例如,如果我正在查看原点的对象,我想设置 distance_from_origin 同时仍保持观察方向?
camera.absTranslateZ(distance_from_origin);
【问题讨论】:
-
camera.position.setZ -
@AndyRay 刚刚检查过,它没有像 translateZ 那样保持观察方向。
-
你可以做线性代数来找到相机矢量线上 Z = 你的距离的点,或者你可以 setZ 然后再看一遍
-
我对你的问题感到困惑。您是否希望获得“飞越”效果,在相机沿 Z 方向行进时继续观察单个点?或者您是说您希望能够在“相机空间”中使用
translateZ? -
@TheJim01 translateZ 在对象空间中并接收一个相对参数。因此,如果您执行 translateZ(10) 两次,它会将凸轮移动 20 个单位。我希望它在世界空间中而不是相对的。
标签: javascript three.js