원통의 반경 r과 높이 h가 주어지면 원형 원통의 부피 안에 무작위 3d 점 [x, y, z]를 생성하는 가장 좋은 방법 또는 알고리즘은 무엇입니까?원통의 무작위 점 생성
답변
원통을 둘러싸는 직사각형 솔리드 내부에 임의의 점을 생성합니다. 그것이 실린더 안에 있다면 (확률 pi/4), 그것을 유지하십시오, 그렇지 않으면 그것을 버리고 다시 시도하십시오.
** 종료 가능성이 ** 있습니다 **. 네가 잘못하지 않았으니 너를 다운시킬 가치는 없지만 이것은 언급할만한 가치가있다. –
무작위 각도 (선택적으로 2π보다 작음), 반경보다 작은 임의의 r
및 높이보다 작은 임의의 z
을 생성하십시오.
x = r * cos(angle)
y = r * sin(angle)
z 축은 쉽다 : -0.5의 * h를 < = Z < = 0.5 * h를
X 및 Y는 것이다 서클 같다 : X^2 + y^2 < = R^2
Buth 수학은
실례지만 '0 <= z <= h'가 아니어야합니까? –
실린더가 z 방향의 중심에 있다고 가정하면 내 '원통'중심은 (0, 0, 0)이라고 가정하면이 점이 달라집니다. –
아. 권리. 공정하다. –
:-) 나를 위해 오래 전에하는 방법에 대한 - 파이썬 의사에,시키는 R은 반지름하고 H는 높이가 될 :
s = random.uniform(0, 1)
theta = random.uniform(0, 2*pi)
z = random.uniform(0, H)
r = sqrt(s)*R
x = r * cos(theta)
y = r * sin(theta)
z = z # .. for symmetry :-)
간단히 x = r * cos(angle)
및 y = r * sin(angle)
을 취하는 문제는 r이 작 으면, 즉 원의 중심에서 r의 미세한 변화가 x 및 y 위치를 대폭 변경하지 않는다는 것입니다. IOW, 그것은 데카르트 좌표에서 비 균일 분포로 이어지고 점들은 원의 중심쪽으로 집중됩니다. 제곱근을 취하는 것은 적어도 제 산술을 올바르게 수행했다면이를 수정합니다.
는 [아가 SQRT was right 같다.]
(I 실린더는 Z 축과 정렬되며, 실린더 중심의 위치는 그것이을 생각하지 않고 가정 유의 (0,0, H/2) 실린더 중심에서 (0,0,0)을 설정하는 것은 덜 임의적입니다.이 경우 z는 0, H가 아닌 -H/2와 H/2 사이에서 선택해야합니다.
실린더가 비표준 축을 따른다면 접근법을 좋아합니다. – user1198477
- 1. JPanel에 무작위 점 배치
- 2. 무작위 문자열 생성 PHP
- 3. 무작위 URL 생성
- 4. 무작위 색인 벡터 생성
- 5. 무작위 스도쿠 생성
- 6. 무작위 그래프 생성
- 7. 무작위 테스트 생성
- 8. 게임용 무작위 배경 생성
- 9. 사각형에 무작위 균일 점 분포 (캐치 포함)
- 10. Disparity에서 3D 점 생성
- 11. 큰 무작위 평면 그래프 생성
- 12. 더 나은 무작위 생성 PHP
- 13. 무작위 순열 1,000,000 샘플 생성
- 14. 안드로이드에서 무작위 지오 포인트 생성
- 15. SqlServer 무작위 데이터 생성 관찰
- 16. jQuery로 무작위 시작 인덱스 생성
- 17. 독립 요소가있는 무작위 행렬 생성
- 18. 경계 간 무작위 인구 생성
- 19. 원통 내부에 임의의 점 생성?
- 20. 부동 소수점을 사용하는 C 프로그램 무작위 생성
- 21. PHP + GD 무작위 검정색 작은 이미지 생성
- 22. txt 파일을 사용하여 무작위 질문 생성
- 23. 배열의 무작위 부분 집합을 사용하여 테이블 생성
- 24. 무작위 및 고유 한 하위 집합 생성
- 25. XNA 무작위 타일/지형 생성 자습서?
- 26. 무작위 및 인쇄 목록을 1 줄로 생성
- 27. 중복이없는 java에서 무작위 포인트 배열 생성
- 28. canvas.drawColor에 대한 무작위 색상의 난수 생성 방법
- 29. 균일 한 분포로 사각형 주변에 임의의 점 생성
- 30. 무작위
이 답변은 실린더가 z 축과 정렬되어 있다고 가정합니다. 이 답변으로 충분합니까? 아니면 비표준 축을 따라 유사한 실린더를 계산할 방법이 필요합니까? –
아래의 답변은 실린더의 볼륨 내에 균일하게 분포 된 지점을 원한다고 가정합니다. 원하는 것이 아닌지 명확하게 명시해야합니다. – andand
실린더가 비표준 축을 따른다면 접근법을 좋아합니다. – user1198477