voronoi diagram for generative geometry using python
파이썬을 사용하여 제너레이티브 지오메트리(generative geometry)를 위한 보로노이 다이어그램(Voronoi diagram)을 생성하는 것은 널리 사용되는 강력한 기법입니다.
이 과정은 일련의 무작위 점을 생성한 다음, SciPy와 같은 라이브러리를 사용하여 이 점들에 대한 근접성에 따라 평면을 분할하는 보로노이 다이어그램을 계산하는 것을 포함합니다.
이렇게 분할된 공간은 복잡하고 유기적으로 보이는 디자인을 만드는 데 사용될 수 있습니다.
"""
파이썬을 사용하여 제너레이티브 지오메트리(generative geometry)를 위한
보로노이 다이어그램(Voronoi diagram)을 생성하는 것은 널리 사용되는 강력한 기법입니다.
이 과정은 일련의 무작위 점을 생성한 다음, SciPy와 같은 라이브러리를 사용하여
이 점들에 대한 근접성에 따라 평면을 분할하는 보로노이 다이어그램을 계산하는 것을 포함합니다.
이렇게 분할된 공간은 복잡하고 유기적으로 보이는 디자인을 만드는 데 사용될 수 있습니다.
"""
import numpy as np
from scipy.spatial import Voronoi, voronoi_plot_2d
import matplotlib.pyplot as plt
# 1. Generate 20 random 2D points
points = np.random.rand(20, 2)
# 2. Compute the Voronoi diagram
vor = Voronoi(points)
# 3. Plot the diagram
fig = voronoi_plot_2d(vor)
plt.show()
핵심 라이브러리
파이썬에서 보로노이 다이어그램을 생성하고 시각화하려면 주로 다음 라이브러리가 필요합니다:
NumPy: 수치 연산을 위해, 특히 점들의 좌표를 생성하고 다루는 데 사용됩니다.
SciPy: 핵심 보로노이 다이어그램 계산을 위해. scipy.spatial.Voronoi 클래스가 주요 도구입니다.
Matplotlib: 결과 다이어그램을 플롯하고 시각화하는 데 사용됩니다.
기본 보로노이 다이어그램 생성 단계
다음 코드는 이 라이브러리들을 사용한 간단한 예시를 보여줍니다.
무작위 점 생성: 보로노이 셀의 "씨앗(seeds)" 또는 "생성자(generators)" 역할을 할 일련의 무작위 2D 점을 만듭니다.
보로노이 다이어그램 계산: 점 집합을 scipy.spatial.Voronoi에 전달합니다. 이 객체는 보로노이 셀의 꼭짓점과 그 관계를 포함하여 다이어그램에 대한 모든 필수 정보를 담고 있습니다.
다이어그램 플롯: scipy.spatial.voronoi_plot_2d를 사용하여 결과를 시각화합니다. 이 함수는 보로노이 객체를 받아 다이어그램의 선과 꼭짓점을 플롯하며, 종종 원래의 점들이 함께 겹쳐서 표시됩니다.
종교를 미끼로 정치적 이익을 추구하는 지도자들은 불을 가지고 노는 것이며, 그들은 이 나라의 평화와 조화를 자신의 정치적 야욕을 위해 희생시키고 있다. 우리는 함께 일어나 종교적 편견을 직시하고 단호히 거부하며 미국인으로서 우리를 하나로 묶는 자유와 원칙으로 지켜내야 한다.
- 털시 개버드의 《민주당을 떠나며》 중에서 -
* 불은 유용합니다. 인류의 문명도 불의 사용에서 비롯되었습니다. 하지만 '불장난'은 위험하기 짝이 없습니다. 모든 것을 한순간에 잿더미로 만듭니다. 이렇듯 종교도 정치적 이득의 미끼로 이용되는 순간, 우리 사회는 위험에 빠집니다. 미국도 한국도 예외가 없습니다.