2011-11-12 8 views
1

を取得する座標、我々はいくつかの計算と実際の位置を取得これらを使用して、私たちに回転と平行移動ベクトルを与えるのOpenGLオブジェクトのモデルビュー行列である:画面とOpenGLの現実の世界を比較ヒット我々が持っている基本的に何

-R*t, where R is [0 4 8; 1 5 9; 2 6 10] matrix and t is [12 13 14] column vector.

OpenCVには、指先の画面座標x,yがあります。

ここでは、このx,yの画面をOpenGLの実世界座標と比較して、どのオブジェクトが指でヒットしたかを確認する方法が必要です。私たちはgluUnProjectを試しましたが、x、yから正しい現実の座標を返しませんでした。

ここで試してみる方法はARToolKitとOpenCVを併用しているため、ARのマーカーに基づいてmodelview行列が変わります。また、ARToolkitカメラモジュールを使用しています。

答えて

2

私は、3つの線形独立方程式のシステムのための2つの既知のものを持っています。だからあなたは文字通り何らかの情報が欠落しています。あなたは自由なパラメータzを持っています。それについて考えるならば、これは空間上の位置ではなく、(カメラから無限遠への)カメラへの光線です。あなたは、z = 0とz = 1のためにgluUnProjectすることができます。これにより、レイの2つの点が得られます。次に、そのレイを使用して、オブジェクトのいくつかを横切るかどうかをテストできます。

または、他の方法で行う:各オブジェクトの境界ボリュームをスクリーンスペース(x、y)に投影し、指の座標のテストに触れます。私は後でやります。

関連する問題