我有一个公式,给了我我最想要的东西。但我真正想要的是能够用距离做到这一点。让我解释一下。
以下是让相机围绕Point(LookAt点)旋转的公式。
this.Position.X = this.LookAt.X + Math.sin(angle);
this.Position.Z = this.LookAt.Z + Math.cos(angle);
根据是否按下向左或向右键,角度(上方)将被更新0.15(+或 - )。 这样可以使我的相机围绕摄像机正前方的一个点旋转。
我想要的是这个: 能够围绕外观点旋转相机(如当前行为),但允许相机根据与外观点的距离“放大”或“缩小”。
我尝试了类似下面的内容,但没有达到预期的效果:
this.Position.X = this.LookAt.X + Math.sin(angle);
this.Position.Z = this.LookAt.Z + Math.cos(angle);
this.Position.X *= distance;
this.Position.Z *= distance;
答案 0 :(得分:1)
我阅读你的描述的方式,我想这会给你你想要的东西:
this.Position.X = this.LookAt.X + distance * Math.sin(angle);
this.Position.Z = this.LookAt.Z + distance * Math.cos(angle);
按照你的方式,你会将LookAt
点乘以distance
,这意味着它会在你缩放时移动。如果你想继续观察同一个点,但只是靠近/远离,你只需要相对于LookAt
点的位置相乘。