【发布时间】:2012-11-28 01:08:33
【问题描述】:
我需要从第三人称视角围绕玩家旋转相机。 (没什么花哨的)。
这是我的尝试:
// Forward, right, and position define the plane - they have x,y,z components.
void rotate ( float angle, Vector interestPoint )
{
Vector oldForward ( Forward );
forward = forward * cos(angle) + right * sin(angle);
forward.Normalize();
right = forward.CrossProduct ( up );
right.Normalize();
position = ( position + old_forward * position.Distance( interestPoint ) ) - (forward * position.Distance( interestPoint ) );
this->angle += angle;
}
问题是,如果我们说左转很多次,物体和相机之间的距离就会增加。
【问题讨论】:
-
听起来您需要为相机与物体的距离添加另一个参数,或者可能是距离和方向?