処理中に立方体の表面にランダムかつ均一に点を生成しようとしています。アニメーションを作成しようとしているので、ポイントのx、y、zの最終位置が必要になります。
助言がありますか?ありがとう。
処理中に立方体の表面にランダムかつ均一に点を生成しようとしています。アニメーションを作成しようとしているので、ポイントのx、y、zの最終位置が必要になります。
助言がありますか?ありがとう。
3つの均一なランダム分布を組み合わせるだけです。この方法は、単位立方体[0..1]^3があることを前提としています。そうでない場合は、ポイントを生成した後、ポイントをスケーリングしてオフセットするだけです。
C++風の擬似コードを次に示します。
vec3 result;
int s=randomSide(); // returns 0 to 5, uniformly distributed
int c=s%3; // get the axis perpendicular to the side you just picked
result[c]=s>2 ? 1.f : 0.f;
result[(c+1)%3]=random01();
result[(c+2)%3]=random01();
立方体ではなく、より一般的なボックスがある場合は、ボックスの側面の面積に応じてサイドピッキングにバイアスをかける必要があります。