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)

double を渡してベクトルを初期化するコンストラクター。

4

1 に答える 1

2

最初のベクトル (カメラ位置) と 2 番目のベクトル (lookat 位置) の値は同じです。eye新しい位置を設定するアルゴリズムは、 からへの方向がないため、カメラがどちらの方向を向いているかを判断できませんlookAtlookat positionからeye見たい方向に移動するだけです。

于 2012-09-17T14:19:29.720 に答える