1

画面に触れる場所にopenglオブジェクト(三角形など)を配置する方法を探しています。画面上に 3D ピラミッドが表示され、タッチの開始点とドラッグ先の差に基づいて画面上を移動します。
通常の surfaceViews では、 のようなことをするだけで済みますelement.x = event.getX()が、これは openGL では機能しません。誰でもアイデアがありますか?
ps: 私は Java/Android を使用しています。

4

1 に答える 1

2

OpenGL は、各要素が永続的なサーフェス ビューとは異なります。ペンやブラシに相当する 3D です。すべてのデータを自分で追跡する必要があります。

したがって、タッチイベントハンドラーでは、入力座標を使用して光線を投影し、ビューに垂直な平面を作成します。この射影を自分で実装する必要がありますが、それは簡単です: 「光線平面交差」を検索してください。これにより、ユーザーがタッチした画面上の点の投影に対応する平面上の座標が得られます。この座標を使用してオブジェクトを変換し、シーンを再描画します。

于 2011-06-30T12:42:52.937 に答える