我有一个我无法解决的数学问题。
我在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轴相机在轴周围的移动
答案 0 :(得分:1)
从计算x,y,z中去除camorigin。