1

画面に正方形のオブジェクトがあります。

glVertex3d(-0.1, -0.1, -0.1);
glVertex3d(0.1, -0.1, -0.1);
glVertex3d(0.1, 0.1, -0.1);
glVertex3d(-0.1, 0.1, -0.1);

マウスがこのオブジェクト上を移動するかどうかを知りたいです。

4

3 に答える 3

0

単純な正方形の場合は、4 つの頂点を手動で画面空間に変換し (モデル ビュー プロジェクション マトリックスを掛けて)、マウス座標を -1 から 1 の範囲に変換し、最後に説明したポリゴン内でマウスが座標を調整しているかどうかを確認します。点を 3D 空間からスクリーン空間に変換するのに役立つgluProjectも参照してください。

于 2013-01-29T09:33:51.670 に答える
0

gluPickMatrix が探しているものだと思います。

詳細はこちら

于 2013-01-29T16:02:07.063 に答える
0

最初に言及することは、計算を実行するスペースを知っておく必要があるということです。マウス ポインターには画面またはウィンドウ空間に応じた位置があり、オブジェクト (この例ではボックス) にはモデル空間座標があります。

1 つのスペースを選択し、すべての座標を選択したスペースに変換する必要があります。

いくつかの問題を説明しているブログ投稿は次のとおりです

于 2013-01-29T12:02:33.287 に答える