1

今学期のコースの 1 つに、Matlab を使用して小さなチェス ゲームを作成しています。私が問題を抱えているのは、ユーザーがチェスの駒の 1 つを選択できるようにすることです。

物事を単純化するために、ユーザーがチェスの駒自体をクリックするのではなく、チェスの駒が存在する正方形をクリックして駒を選択するようにしています (これははるかに難しいと思います)。ビューポートの x 座標と y 座標を取得する方法は知っていますが、これらの座標を 3 空間座標に変換するにはどうすればよいですか?

各ビューポート座標に関連付けられた複数の x、y、z 座標があることは知っていますが、z = 0 の x、y、z 座標のみに関心があります (ボード自体が x、y 平面にあるため) z = 0 の場合に z 軸と交差します)。

4

2 に答える 2

2

ファイル交換からselect3dを見たいと思うかもしれません。これにより、3D でパッチ オブジェクトを選択できます (これはおそらく、ボードを作成する方法です)。

于 2010-05-06T20:50:32.107 に答える
0

MATLAB 固有ではありませんが、これは役立つかもしれません: カメラ パラメーターとクリック位置が与えられれば、光線をシーンに投影して交点をテストできますが、おそらく逆問題を考える方がずっと簡単でしょう:チェス グリッドの四角形を画面座標に配置し、2D でクリック位置と比較するだけです。これは、シーンのレンダリングで既に行われていることに注意してください。

于 2010-05-06T20:22:46.613 に答える