0

http://www.chai3d.org/doc/classc_camera.html#6b5bbcc535b601c19e10be288dfc65f7

为了

bool cCamera::set   (   const cVector3d &   a_localPosition,
                        const cVector3d &   a_localLookAt,
                        const cVector3d &   a_localUp    
)   

此调用返回 true 即成功

camera->set( cVector3d (1, 0.0, 3),    // camera position (eye)
        cVector3d (0.0, 0.0, 0.0),    // lookat position (target)
        cVector3d (-1.0, 0.0, 0.0));   // direction of the "up" vector);
    }

我没有收到任何错误,但是此调用返回 false,即无法设置相机新位置,为什么?

 camera->set( cVector3d(toolPos.x,toolPos.y,toolPos.z),
              cVector3d(toolPos.x,toolPos.y,toolPos.z),
              cVector3d (1.0, 0.0, 0.0)); 

当我使用断点检查时,工具是一个具有有效值的 cVector3d 变量....cVector3d 的定义也是

cVector3d (const double a_x, const double a_y, const double a_z)

构造函数通过传递一个双精度来初始化向量。

4

1 回答 1

2

那么您的第一个向量(相机位置)和您的第二个向量(观察位置)具有相同的值。eye设置新位置的算法无法确定相机朝向的方向,因为从到没有方向lookAt。只需lookat positioneye您想要查看的方向移动。

于 2012-09-17T14:19:29.720 回答