2017-05-11 9 views
5

JavaScript 캔버스에서 임의의 점을 무작위로 생성했습니다. 가장 효율적인 방법은 점을 균일 한 방식으로 연결하는 삼각형을 그리는 것이 무엇인지 궁금합니다. 목표는 삼각형을 겹치지 않고 전체 캔버스에 채우는 것입니다.임의의 점 집합에서 삼각형 생성


시각적 표현을 위해 캔버스에서 임의로 생성 한 포인트 이미지가 있습니다. 보시다시피 캔버스에 포인트를 무작위로 배치하는 방식을 수정해야 할 수도 있습니다.

points

는 그리고 이것은 내가 삼각형을 그리는하고자하는 방법이다.

enter image description here

+0

고려 [들로네 삼각 측량 (https://en.wikipedia.org/ : 여기

내가 점으로 업데이트가면을 이동 캔버스에 그려진 한 내용의 결과이다 wiki/Delaunay_triangulation) – Phrogz

+0

JavaScript 라이브러리가 있습니다 (항상 하하처럼) : https://github.com/ironwallaby/delaunay –

+0

고맙습니다 @Phrogz, 저에게 올바른 방향으로 갈 수있을만큼 충분합니다. – getmicah

답변

1

덕분에 올바른 방향으로 날을 가리키는 위해 & @GabeRogan을 @Phorgz합니다. Delaunay 삼각 측량은 확실히가는 길이었고 캔버스를 애니메이션으로 업데이트하는 경우에도 매우 빨랐습니다.

나는 divide and conquer 알고리즘을 사용하여 무작위로 생성 된 포인트를 삼각형 화하는 npm 패키지 faster-delaunay을 사용했다.

delaunay

관련 문제