画面に正方形のオブジェクトがあります。
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);
マウスがこのオブジェクト上を移動するかどうかを知りたいです。
画面に正方形のオブジェクトがあります。
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 つの頂点を手動で画面空間に変換し (モデル ビュー プロジェクション マトリックスを掛けて)、マウス座標を -1 から 1 の範囲に変換し、最後に説明したポリゴン内でマウスが座標を調整しているかどうかを確認します。点を 3D 空間からスクリーン空間に変換するのに役立つgluProjectも参照してください。
gluPickMatrix が探しているものだと思います。
詳細はこちら
最初に言及することは、計算を実行するスペースを知っておく必要があるということです。マウス ポインターには画面またはウィンドウ空間に応じた位置があり、オブジェクト (この例ではボックス) にはモデル空間座標があります。
1 つのスペースを選択し、すべての座標を選択したスペースに変換する必要があります。
いくつかの問題を説明しているブログ投稿は次のとおりです。