큐브 표면에 점을 무작위로 생성하고 균일하게 처리하려고합니다. 나는 애니메이션을 만들려고 노력 중이므로 x, y 및 z 최종 점이 필요합니다.큐브의 표면에 3D 랜덤 포인트 생성
제안 사항? 감사.
큐브 표면에 점을 무작위로 생성하고 균일하게 처리하려고합니다. 나는 애니메이션을 만들려고 노력 중이므로 x, y 및 z 최종 점이 필요합니다.큐브의 표면에 3D 랜덤 포인트 생성
제안 사항? 감사.
세 개의 균일 한 임의 분포를 결합하면됩니다. 이 방법에서는 단위 큐브 [0..1]^3이 있다고 가정합니다. 그렇지 않은 경우 포인트를 생성 한 후 크기를 조정하고 오프셋하면됩니다.
여기하다는 측면의 평면 좌표 픽업은 X가 측의 평면
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();
큐브 대신 일반 상자가 있으면 사이드 픽킹을 바이어스해야합니다 상자 측면의 영역.
죄송합니다. 결과에 따라 C++에 익숙하지 않으므로 벡터를 의미하게됩니다. .x vector.y vector.z? 귀하의 답변을 주셔서 감사합니다 –
그것은 n 번째 좌표에 액세스해야하므로 result [0]은 x, result [1]은 y이고 result [2]는 z – ltjax
입니다. 이 코드는 PVectors를 사용하고 vector.x와 같은 위치로 접근해야하기 때문에 처리가 복잡하기 때문에 번역하기가 까다 롭습니다. –
큐브 표면이나 큐브 내에서 임의로 점을 생성하고 싶습니까? – aioobe
간격 [0,1]에 임의의 균일 한 숫자를 생성하는 방법이 있습니까? –
죄송합니다. 큐브 표면에 있습니다. @HighPerformanceMark 무작위 (0,1) 방법이 있는데 어떻게 사용해야합니까? –