3D空間で平面を取得し、画面上のグリッドの1つのセクション内に完全に収まる平面を返す関数を作成しようとしています。
画面上のグリッドは固定されており、XとYの分割、または画面全体の一連の線によって定義されます。
元の平面は、画面全体を占めることはありませんが、画面上の任意のサイズまたは方向にすることができます。
私はC#を使用してUnity3.5.2f2で作業しています。Unityの一般的な知識だけでなく、数学に基づいているため、SOに投稿しました。可能性はありますが、ソリューションは外部ライブラリを使用しないのが理想的です。
私はいくつかの方法を念頭に置いており、どんな入力でもいただければ幸いです。
平面をスクリーンスペースに投影し、メッシュの最小/最大x値とy値(境界ボックス)を取得し、これを使用してスケールxformを計算します(メッシュの高さ/長さのスクリーン分割の差を使用)。メッシュの2つのエッジを選択した分割にスナップした後、ワールドスペースに再投影します。
分割は本質的に長方形であるため、いくつかのビュー錐台を作成し、錐台に合うように3D空間で平面をスケーリング/平行移動する方法を考え出します。
関数プロトタイプは次のようになります。
Plane adjustPlaneToFitScreens(Plane _plane)
何かご意見は?