Как я могу сделать вороной древовидную карту?

Я хочу сделать вороной древовидную карту для статистических данных, напримеральтернативный текст ht tp://newsgraphy.com/

Знаете ли вы, как я могу сделать это на Perl, PHP, Ruby или Python?

7 ответов

Решение

Хорошие демонстрации и графика для Python: http://home.scarlet.be/zoetrope/voronoi/ ( Архивная копия на обратном пути)

Просто нашел эту страницу. Я работал над демонстрационным апплетом Voronoi, используя Javascript / canvas, после перевода в Javascript версии алгоритма Стивена Фортуна на C# Бенджамина Диттеса (доступно в Code Project, см. "Алгоритм Fortune's Voronoi, реализованный в C#"). Вот страница, которая включает алгоритм Fortune Вороного в Javascript: http://www.raymondhill.net/voronoi/voronoi.php Это первая итерация, я планирую адаптировать ее, чтобы она лучше подходила для Javascript. Надеюсь это поможет.

Прежде всего, линии не странны: это результат того факта, что это не нормальная тесселяция Вороного, а взвешенная по площади тесселяция Вороного (AWT), возможно, даже центроидная тесселяция Вороного (CVT). При этом, чтобы иметь области Вороного (полигоны) со значительно отличающимися областями (что отражало бы некоторый атрибут данных), вам нужны AWT (предпочтительно реализованные как CVT, чтобы сохранить хорошие пропорции для полигонов); нормальный алгоритм Вороного (как предложили некоторые люди выше) не сможет вам помочь. Вероятно, прямого решения для этого нет, особенно для скриптовых языков, поскольку сложность вычислений из-за итеративных шагов обновления для AWT довольно высока. Вам следует поискать работы над "Вороновскими древовидными картами" и "Динамическими Вороновыми древовидными картами" Balzer et al. и Sud et al. чтобы получить представление об алгоритме, а затем реализовать его самостоятельно (все, что вам нужно, есть в их документах).

Другой ответ Python, кажется, указывает только на растровое решение. Я также заинтересован в решении этой проблемы (в Python), и я думаю, что следующий скрипт может сформировать удобную отправную точку:

http://www.oxfish.com/python/voronoi.py

( Архивная копия на обратном пути)

В последней версии (2.0) Macrofocus TreeMap в качестве опции, среди прочего, представлен алгоритм Вороного.

Джеймс Таубер пишет учебник, в котором используются JavaScript и алгоритм Fortune для рисования диаграммы Вороного в canvas элемент: Вороной Холст Учебник

Это еще не завершено (он находится в части 3 из 4), но там достаточно, чтобы завершить это, я думаю.

Другие вопросы по тегам