Как визуализировать карту?(картина) - PullRequest
1 голос
/ 03 ноября 2010

Я хочу визуализировать карту следующим образом: http://www.time.com/time/covers/20061030/where_we_live/.

Могу ли я сделать это с помощью opengl или обработки? Как?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2010

Лично я бы порекомендовал использовать сетку граней, выбрать карту Соединенных Штатов, затем поднять и раскрасить каждую точку в соответствии со шкалой, указанной в вашей ссылке.

Я думаю, что на самом деле это будетпроще, чем метод, описанный NielsK, трудной частью будет просто получение необходимых данных в удобном для анализа формате.

0 голосов
/ 07 ноября 2010

Я думаю, что самый простой способ сделать это не в 3D, а просто использовать базовые изометрические методы и перекрасить.

Возьмите свою карту, масштабируйте ее до половины высоты, чтобы предложить перспективу, и нарисуйте ее на холсте.

Теперь создайте пустое прозрачное растровое изображение размером с оригинальную карту и поместите бледно-розовые круги с данными, как будто на карте. Масштабируйте это растровое изображение до половины высоты и нарисуйте его поверх исходной карты.

После этого создайте еще один, но сделайте ваши круги на 1 пиксель меньше в радиусе и измените цвет еще на один оттенок в сторону темно-красного. Снова увеличьте его до половины высоты и нарисуйте поверх существующей композиции, но на один пиксель выше в направлении y. Продолжайте повторять этот шаг до тех пор, пока самый большой круг на вашей карте не достигнет радиуса 0, чтобы нарисовать самый высокий пик.

Я думаю, что это должно создать что-то очень похожее на карту в примере, без необходимости сложной трехмерной геометрии.

Визуально это будет напоминать карту ВРЕМЕНИ еще больше, когда:

- Вы используете обратную экспоненциальную формулу, чтобы уменьшить размер кругов на каждом шаге. В предлагаемом алгоритме шипы будут довольно скучными (конусообразными) и не будут очень высокими.

- Вы используете контур исходной карты в качестве маски прозрачности, чтобы ограничить каждый слой данных. Сделайте это до масштабирования до половины высоты. Это ограничивает выбросы данных в соответствии с формой карты и предотвращает их перетекание через границы в море.

Конечно, этот алгоритм можно оптимизировать, рисуя слои данных на половине высоты, уже используя эллипсы, и рисуя их прямо на карте. Тем не менее, способ окружности / слоя лучше иллюстрирует базовую технику и облегчает выполнение этапа ограничения контура.

...