2016-05-16 6 views
0

私は理解できない数学的な問題を抱えています。ルア - カメラの動き、計算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:あなたはこのコードが何を意味するのか見当もつかない場合は、あなたがaswellちょうど適切xの計算からcamoriginを削除する軸

答えて

1

の周りにカメラの動きのためのZを計算する方法を、Y、Zが働いていたが私を伝えることがあります。

+0

ご質問ありがとうございます。可能であれば、受け入れられたものとしてマークすることを忘れないでください。 – Phrogz