2016-05-16 59 views
0

我有一个数学问题,我无法通过。Lua - 相机运动,计算Z

我做在Lua模型浏览器,其中鼠标移动钩住摄像机位置,摄像头位置有2种模式:固定和自由,自由完美的作品,而固定似乎有问题,用正确计算Z.

X和Y的计算是正确的,并且没有任何问题,但Z似乎与X,Y方式的比例太大,如下所示:http://puu.sh/oTN1v/5846343f82.webm(这些相机变形发生在我点击鼠标右键时发生,即使我不移动小鼠)

function self:RightMouseClick() 
local cx, cy = mousepos() 
local radius = math.sqrt(math.pow(campos.x, 2) + math.pow(campos.y, 2)) 
local ang = (camorigin - campos):Angle() 

function self:Think() 
    if input.IsMouseDown(MOUSE_RIGHT) then 
     local x = camorigin.x + radius * math.cos(math.rad(1) * (180 + ang.yaw + (cx - mousex()) * 0.5)) 
     local y = camorigin.y + radius * math.sin(math.rad(1) * (180 + ang.yaw + (cx - mousex()) * 0.5)) 
     local z = camorigin.z + radius * math.sin(math.rad(1) * (ang.pitch + (cy - mousey()) * 0.5)) 

     campos = Vector(x, y, z) 
    end 
end 

@Edit:如果你不知道这是什么意思的代码,你可能藏汉只是告诉我如何正确计算Z表示相机移动围绕轴线

回答

1

从x的计算删除camorigin,Y,Z制定。

+0

感谢您记住回答您自己的问题。请记住标记为尽可能接受。 – Phrogz