과정은 단순합니다. 무작위 위치에 아주 작은 원을 하나 심고, 다른 원이나 화면 경계에 닿을 때까지 반지름을 조금씩 키웁니다. 더 자랄 수 없으면 성장을 멈추고, 그 사이 계속 새로운 작은 원을 빈 곳에 심어 넣습니다. 이 과정을 반복하면 큰 원들 사이의 좁은 틈까지 작은 원들이 스며들어 채우는, 데이터 시각화의 "버블 차트"와 닮은 빽빽한 모자이크가 만들어집니다.
원 사이의 겹침 검사가 원 개수의 제곱에 비례해 느려지기 때문에(모든 쌍을 비교), 실무에서는 공간을 격자로 나눠 가까운 원만 검사하는 최적화를 씁니다. 이 데모는 개수를 제한해서 최적화 없이도 실시간으로 도는 정도로 유지했습니다.
포스터의 배경 텍스처, 데이터의 비율을 원 크기로 표현하는 버블 차트, 유기적인 로고 배경에 씁니다. 원마다 색을 다르게 주면 그 자체로 장식적인 패턴이 됩니다.
언제 쓰나
포스터·배경의 장식적 텍스처, 비율을 원 크기로 보여주는 버블 차트에. 원 개수가 많아지면 공간 분할로 겹침 검사를 최적화하세요.