1

私の小さなOpengl/freeglut / c++2Dエディタプロジェクトで問題が発生しました。

エディターを使用すると、四角形または三角形(オブジェクト)を描画できます。オブジェクトの隅を好きな場所にドラッグすることで、オブジェクトのサイズを変更できます。オブジェクトがアクティブな場合は、画面上でオブジェクトを移動することもできます(オブジェクトをクリックしてアクティブにします)。

今私が抱えている問題は、オブジェクトをアクティブにするためにクリックした領域を白くすることです。アクティベーションエリアは、以前はオブジェクトの周囲の4分の1でした(オブジェクトの幅と高さなどを取得します)(画像の青い点はアクティベーションエリアの境界を示しています)

http://i48.tinypic.com/muyh41.png

ただし、アクティベーション領域は、オブジェクトの周囲のクワッドではなく、オブジェクトの領域にする必要があります。では、問題は、このテキストの上または下の図のように、マウスが領域内でクリックされたかどうかをどのように確認するかということです。

http://i49.tinypic.com/abmli8.png

4

1 に答える 1

3

OpenGLは単なる描画APIであり、(Free)GLUTは、OpenGLコンテキストがアタッチされたウィンドウを作成するための最小限のフレームワークです。それらのどちらもそこであなたを助けません。

レイトライアングル交差テストを手動で実行する必要があります

これらのリンクはあなたにとって興味深いかもしれません

http://www.lighthouse3d.com/tutorials/maths/ray-triangle-intersection/

http://www.gamedev.net/topic/447861-ray--triangle-intersection-code/

于 2012-11-03T18:58:36.857 に答える