0

ユーザーが円を描くことができるXNAのプログラムがあります(完全な円ではなく、マウスでフリーハンドで円を描く)。結果の「円」は、Vector2 ポイント (スクリーン スペース) のリストとして保存されます。それらを 3D 空間に変換するのは簡単ですが、変換後にやりたいことは、円で囲まれた領域 (すべて Z:0 にある) を平らなボリュームとして扱い、完全に均一ではない方法で粒子で満たすことです。これを実現するには、選択した領域内のランダムなポイントにパーティクルの位置を割り当てる必要があります。どうすればこれを達成できますか?

4

1 に答える 1

1

まず、ポイントのリストを調べて、各軸に沿ってminとのポイント (すなわち、、、 )を検出することにより、ポイントのバウンディング ボックスを見つけます。次に、とのような数値のペアを生成することにより、その境界ボックス内にいくつかのランダム ポイントを生成し、 Point in Polygon アルゴリズムを使用して、各ランダム ポイントがユーザーの「円」(技術的にはpolygon )内にあるかどうかを確認します。ポイントが「円」の内側にある場合は、それを保持します。それ以外の場合は、別のランダム ペアを生成します。これにより、ランダムなポイントが得られるはずです。maxminXminYmaxXmaxY(x, y)minX < x < maxXminY < y < maxYN

于 2013-09-28T11:14:58.950 に答える