2016-05-16 36 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