최소 간격으로 점의 무작위 균일 분포

Compizfox

무작위로 균일 한 간격을두고 있지만 서로 너무 가깝지는 않은 2D 공간에서 점 집합의 좌표를 생성하려고합니다.

으로 시작 np.random.uniform하여 nx 2 값 (x 및 y 좌표)을 생성 한 다음 모든 좌표에 대해 두 개의 중첩 된 for 루프를 사용하여 좌표 목록을 선별하여 너무 가까운 점을 제거하고 임의로 다른 곳에 배치했습니다.

# Generate xy coordinates for the grafting points
rng = np.random.RandomState(seed=self.rng_seed)
    coordinates = rng.uniform(high=(self.box_size[0], self.box_size[1]), size=(n_chains, 2))

for count in range(0, self.max_overlap_iter):
    moved_bead = False
    # Search for overlapping beads by looping over the list doubly
    for id_i, coord_i in enumerate(coordinates):
        for id_j, coord_j in enumerate(coordinates):
            if not id_i == id_j and np.sqrt(sum((coord_i - coord_j)**2)) < self.bead_size:
                # Move the second point
                coordinates[id_j] = rng.uniform(high=(self.box_size[0], self.box_size[1]), size=2)
                moved_bead = True
    if not moved_bead:
        break

포인트가 새로운 임의의 위치로 이동 된 후에도 여전히 겹칠 수 있으므로 외부 루프를 다시 통과해야합니다.

문제는 일부 포인트가 '겹칠'확률이 급증하기 때문에 포인트 밀도가 충분히 높을 때 정말 느려진다는 것입니다. 그 때문에 최대 반복 횟수를 구축해야했지만 분명히 내 문제에 대한 해결책이 아닙니다.

이를 수행하는 더 빠르고 효율적인 방법이 있습니까?

Compizfox

나는 다른 알고리즘에서 얻은 몇 가지 아이디어를 사용하여 비 최대 포인트 세트를 생성하고 선형 시간으로 실행할 수있는 푸 아송 디스크 포인트 세트 생성기 알고리즘을 작성했습니다.

당연히 Google에 "Poisson-disk point set"이라는 용어를 주신 @Kamil에게 감사드립니다.)

https://github.com/Compizfox/MDBrushGenerators/blob/master/PoissonDiskGenerator.py 에서 찾을 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

무작위 균일 분포

분류에서Dev

무작위 균일 분포

분류에서Dev

균일 한 무작위 분포로 연속 및 범주 값을 모두 포함하는 특정 크기의 데이터 프레임을 만드는 방법

분류에서Dev

R : 95 % 신뢰 구간 (2.5 ~ 97.5 백분위 수) 내 벡터의 최소, 최대, 평균 및 중앙값

분류에서Dev

R : 95 % 신뢰 구간 (2.5 ~ 97.5 백분위 수) 내 벡터의 최소, 최대, 평균 및 중앙값

분류에서Dev

pyspark 샘플링으로 대상 값의 균일 한 분포

분류에서Dev

간격 세트를 최소한의 분리 간격 세트로 분할

분류에서Dev

2D 균일 메쉬 그리드에서 가장 가까운 점으로 무작위 부동 소수점을 Python으로 반올림

분류에서Dev

산점도에서 균일 한 간격으로 x 축 값을 변경하는 방법은 무엇입니까?

분류에서Dev

균일하지 않은 분포로 임의의 정수 생성

분류에서Dev

동일한 이미지가 초 간격으로 무작위로 3 개의 다른 div에 나타납니다.

분류에서Dev

최소 및 최대 거리가 정의 된 무작위 포인트 생성

분류에서Dev

PostgreSQL의 최소 시간 간격으로 결과 행 제한

분류에서Dev

균일하게 분포 된 변수의 차이점, Python

분류에서Dev

R에서 균일하지 않은 간격의 x 축 눈금으로 점을 세로로 그리는 방법

분류에서Dev

해당 열의 모든 값에 대해 반복 할 필요없이 데이터 프레임의 값 열 아래로 무작위 균일 분포를 생성하는 방법은 무엇입니까?

분류에서Dev

배열을 2 개의 균등 분할 배열로 무작위 분할

분류에서Dev

백분위 수 제약 조건으로 최상의 지수 분포 생성

분류에서Dev

Excel의 평균 점수를 기반으로 한 최상위 이름

분류에서Dev

SwiftUI를 사용한 균일 한 간격의 원형 분할

분류에서Dev

SwiftUI를 사용한 균일 한 간격의 원형 분할

분류에서Dev

파이썬을 사용하여 (0,0)을 중심으로 한 40 * 40 직사각형 영역에 균일하게 분포 된 임의의 점을 생성하는 방법은 무엇입니까?

분류에서Dev

간격 [시작, 끝]을 동일한 거리의 n 점으로 나누려면 어떻게해야합니까?

분류에서Dev

groupby를 기반으로 값에도 불구하고 matplotlib의 xticks를 균일 한 간격으로 만드는 방법은 무엇입니까?

분류에서Dev

시계열의 관찰 간 최소 시간 간격으로 데이터 추출

분류에서Dev

Bash에서 크고 균일하게 분포 된 임의의 정수를 효율적으로 생성하는 방법은 무엇입니까?

분류에서Dev

Bash에서 크고 균일하게 분포 된 임의의 정수를 효율적으로 생성하는 방법은 무엇입니까?

분류에서Dev

레코드의 균일 한 분포를위한 조건부 정렬

분류에서Dev

Python datetime-span을 동일한 간격의 시간 간격으로 나누는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    무작위 균일 분포

  2. 2

    무작위 균일 분포

  3. 3

    균일 한 무작위 분포로 연속 및 범주 값을 모두 포함하는 특정 크기의 데이터 프레임을 만드는 방법

  4. 4

    R : 95 % 신뢰 구간 (2.5 ~ 97.5 백분위 수) 내 벡터의 최소, 최대, 평균 및 중앙값

  5. 5

    R : 95 % 신뢰 구간 (2.5 ~ 97.5 백분위 수) 내 벡터의 최소, 최대, 평균 및 중앙값

  6. 6

    pyspark 샘플링으로 대상 값의 균일 한 분포

  7. 7

    간격 세트를 최소한의 분리 간격 세트로 분할

  8. 8

    2D 균일 메쉬 그리드에서 가장 가까운 점으로 무작위 부동 소수점을 Python으로 반올림

  9. 9

    산점도에서 균일 한 간격으로 x 축 값을 변경하는 방법은 무엇입니까?

  10. 10

    균일하지 않은 분포로 임의의 정수 생성

  11. 11

    동일한 이미지가 초 간격으로 무작위로 3 개의 다른 div에 나타납니다.

  12. 12

    최소 및 최대 거리가 정의 된 무작위 포인트 생성

  13. 13

    PostgreSQL의 최소 시간 간격으로 결과 행 제한

  14. 14

    균일하게 분포 된 변수의 차이점, Python

  15. 15

    R에서 균일하지 않은 간격의 x 축 눈금으로 점을 세로로 그리는 방법

  16. 16

    해당 열의 모든 값에 대해 반복 할 필요없이 데이터 프레임의 값 열 아래로 무작위 균일 분포를 생성하는 방법은 무엇입니까?

  17. 17

    배열을 2 개의 균등 분할 배열로 무작위 분할

  18. 18

    백분위 수 제약 조건으로 최상의 지수 분포 생성

  19. 19

    Excel의 평균 점수를 기반으로 한 최상위 이름

  20. 20

    SwiftUI를 사용한 균일 한 간격의 원형 분할

  21. 21

    SwiftUI를 사용한 균일 한 간격의 원형 분할

  22. 22

    파이썬을 사용하여 (0,0)을 중심으로 한 40 * 40 직사각형 영역에 균일하게 분포 된 임의의 점을 생성하는 방법은 무엇입니까?

  23. 23

    간격 [시작, 끝]을 동일한 거리의 n 점으로 나누려면 어떻게해야합니까?

  24. 24

    groupby를 기반으로 값에도 불구하고 matplotlib의 xticks를 균일 한 간격으로 만드는 방법은 무엇입니까?

  25. 25

    시계열의 관찰 간 최소 시간 간격으로 데이터 추출

  26. 26

    Bash에서 크고 균일하게 분포 된 임의의 정수를 효율적으로 생성하는 방법은 무엇입니까?

  27. 27

    Bash에서 크고 균일하게 분포 된 임의의 정수를 효율적으로 생성하는 방법은 무엇입니까?

  28. 28

    레코드의 균일 한 분포를위한 조건부 정렬

  29. 29

    Python datetime-span을 동일한 간격의 시간 간격으로 나누는 방법은 무엇입니까?

뜨겁다태그

보관