如何从平面图的X和Y获取DMX聚光灯的PAN和TILT(摄像机视图)

时间:2015-04-22 19:04:16

标签: c# geometry coordinates video-tracking dmx512

上下文

我有一些DMX聚光灯固定在位于地板上方12米处的圆形平台上。相机固定在该平台的中心(大约)。相机应该拍摄地面以找到并跟踪一些目标。这台相机是静态的,给我一个带有X / Y笛卡尔坐标系的2D平面图。当我找到目标时,我需要关注它。

插图

场景的顶视图 Top View Image http://img15.hostingpics.net/pics/635699691.png 场景的侧视图 Side View Image http://img15.hostingpics.net/pics/275272232.png

问题

要用聚光灯照亮目标,我需要找到与此目标的X / Y位置相对应的平移和倾斜角度。这些聚光灯没有特定的方向,但我可以用相机找到它在地面上的X / Y投影点。

部分数据

我在网上找到了一些公式:

float radius = sqrt( x*x + y*y + z*z );
float inclination = atan2( y, x ) * 180.0 / PI;
float azimuth = acos( z/radius ) * 180.0 / PI;

rotx = Math.atan2( y, z )
roty = Math.atan2( x * Math.cos(rotx), z )
rotz = Math.atan2( Math.cos(rotx), Math.sin(rotx) * Math.sin(roty) 

但在不确定的测试后我不知道它是否正确。

我不知道我是否有相应的x,y和z值。

我可以在我的2D计划中找到你想要的一切:聚光灯的点,矢量,天顶点,我可以将聚光灯定位在你想要的地方。我只是找不到特定X / Y点(相机视图中的目标)的相应平移和倾斜,我不知道如何找到它。

我用C#开发。

0 个答案:

没有答案