Как раскрасить карту россии в paint

Обновлено: 07.07.2024

To save the current map configuration (colors of countries-states, borders, legend data), click the button below to download a small mapchartSave.txt file containing all the information.

Upload

When you are ready to continue your work, upload below the mapchartSave.txt file you previously downloaded.

WARNING! Current map will be cleared of all data.

Upload Map Configuration Selected file: -

Autosave

Autosave is made frequently, as you color and edit your map. There is one autosave kept for each page on the website, stored locally in your browser's cache.

WARNING! Current map will be cleared of all data.

If you are also a user of the MapChart mobile app for Android and iOS, you can import your map settings from the website to the app and back. Details in this blog post.

Difference between scaling and nonscaling patterns

What is this?

When you color a country with a pattern (dots, stripes, etc.), the pattern by default gets scaled (resized) to fit its size. You can change this to use nonscaling patterns that look the same on all countries. Examples:

Scaling (default)

scaling patterns world map
scaling patterns world subdivisions map zoomed in
scaling patterns europe map

Nonscaling

nonscaling patterns world map
nonscaling patterns world subdivisions map zoomed in
nonscaling patterns europe map

What to choose?

It can depend on the map or the patterns/colors you select, but generally:

  • Scaling patterns (default) are better for maps with small subdivisions, like the detailed maps or the US counties map.
  • Scaling patterns (default) are better for zoomed in areas.
  • Nonscaling patterns can look better for maps with larger subdivisions, like the simple World map or the US states map.
  • Nonscaling patterns can look better when you have a small number of patterns in your map, as they stand out more.

In any case, you can switch this setting on/off as many times as you need to see the difference live on your map. More details on the blog.

Advanced Settings and Shortcuts

Right-click on a country to:

  • Remove its color.
  • Color it with a pattern (dots, stripes, etc.).
  • Show or hide it.

Hold Control and move your mouse over the map to quickly color several countries. Holding Control + Shift has the opposite result.

Control + Z undoes your latest action. Control + Y redoes it.

In the legend table, click on a color box to change the color for all countries in the group. Right-click on it to select the color again.

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

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

1. Карандашом на бумаге

2. Phоtоshop (и аналоги)

3. Campaign Cartographer 3.0 (и подобные, но их мало, например Wonderdraft).

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

4. Inkarnate

Онлайн-сервис по рисованию карт, в котором ВСЕ базовые функции совершенно бесплатны. Плата за расширенный функционал относительно смешна - 5 долларов в месяц, за нее дают большее расширение картинки при скачивании и всякие дополнительные красивости.

Именно эту прогу я сейчас использую, потому что это:

- Компьютер не подвисает, даже когда я вставляю 100500 горных массивов разом;

- Я могу копировать карту сколько угодно раз и пробовать миллион вариантов;

Интерфейс прост до безобразия, интуитивно понятен (все пиктограммами, минимум текста), приноровившись получается очень даже.

5. Генераторы карт

Когда-то они были пиксельными и примитивными, сейчас все намного лучше. Пока не пользовалась, но даю ссылки сразу на три штуки, где вам сгенерируется карта и вы сможете ее редактировать под свои нужды:


Всю сознательную программистскую деятельность я увлекался созданием игр и не любил делать редакторы и прочие утилиты. Главным моим редактором почти всегда был Paint. Но для игр, в которых уровень статичен и состоит из тайлов (Марио подобные и прочие танчики), это более-менее оправдано, т.к. одному пикселю из файла уровня, созданного в Paint, соответствует тайл в игре. А что если требуется создать игру, где нет тайлов, а игровая локация состоит из неровных скалистых пещер. Или игру, в которой много движущихся элементов (летающие платформы, лифты, циркулярные пилы, вращающиеся по окружности).

Создавать редактор для таких целей мне по-прежнему не хотелось. О том, как я это решил с помощью Paint опишу в этой статье.

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

Неровная карта

Первая игра не блещет разнообразием геймплея: играем за некий подводный кораблик, двигающийся с помощью реактивного двигателя, и уворачиваемся от скал и прочих врагов:


Извиняюсь за качество видео, снимали на телефон

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

Уровень из видео показан слева (увеличено в 4 раза):

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

  • Слой объектов, с которыми игрок взаимодействует: земля, эмиттеры и ежики, а также стартовая позиция и выход. Ориентация эмиттеров (могут стрелять в одном из четырех направлений) не задается, она вычисляется при загрузке, исходя из соседних «земельных» пикселей
  • Слой воды (это аркада, поэтому закон сообщающихся сосудов здесь не действует)
  • Слой с бекграундом


Если это сейчас просто так взять и отрендерить (потайлово), то локация будет состоять из гигантских квадратов. Да и количество таких тайлов достаточно велико (61х69 для этой карты). Поэтому был применён другой способ рендеринга (нетайловый), при котором можно отобразить карту за один вызов (на самом деле за три: отдельно воду, бекграунд и финальная склейка). Это благодаря тому, что весь уровень помещается в одну единственную текстуру, назовём её tex_level. И натягивается она на полноэкранный квад (полигон, размером с экран). Перед этим выставляются текстурные координаты в зависимости от виртуальной камеры, которая привязана к персонажу.

Слева – примерно так выглядит текстура tex_level и охват виртуальной камеры. Справа – назначенные текстурные координаты для полноэкранного квада, т. о. на экран попадает кусочек текстуры tex_level.

Вначале текстуру tex_level надо подготовить. Для этого заведём массив под пиксели этой текстуры:

где w – ширина файла с уровнем, h – высота, деленная на 3 (т.к. три слоя).

Теперь в цикле считываем каждый пиксель исходной карты из каждого слоя и в зависимости от цвета (он же и тип тайла) заполняем соответствующие цветовые каналы в пикселе pix, а именно:


Техническая особенность: на самом деле w и h равны ближайшей в сторону увеличения степени двойки для ширины и высоты карты, недостающие пиксели замащиваются красным цветом (земля), а этот цикл можно считать псевдокодом.


Видно, что один и тот же пиксель в массиве может содержать землю, воду и бекграунд. На основе массива pix создается текстура tex_level, сам массив pix нам ещё пригодится.

Слева готовая текстура tex_level, а справа она же, но в игре. Камера в стартовой позиции.

Чтобы было удобнее продвигаться дальше, будем выводить только R канал из tex_level, т.е. только землю.


Для начала нужно избавиться от этих гигантских квадратов. Для этого массив pix перед тем, как его передать в текстуру tex_level следует размыть по Гауссу (радиус размытия подбирался опытным путем). Теперь всё та же локация выглядит уже куда лучше:

Слева земля до размытия, справа после.
Техническая деталь: перед размытием надо растянуть в 2 раза массив pix так, чтобы исходный пиксель занимал бы уже 2х2 пикселя в растянутом массиве.

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



Вычтем из этого графика 0.5, домножим на какое-нибудь большое число (в данном проекте это 50) и обрежем (операция clamp) по границе [0; 1], т.е. всё, что меньше 0 превращается в 0, а всё, что больше 1 превращается в 1:

В итоге белый цвет не мгновенно переходит в черный (это важно).

Теперь проделаем все эти операции с нашей текстурой tex_level. Пусть в level_color хранится выборка из этой текстуры, тогда фильтр выглядит так: clamp((level_color.r – 0.5) * 50.0, 0.0, 1.0)



Гораздо лучше, а если внимательно присмотреться, то можно увидеть, что на границе раздела двух сред отсутствует алиасинг. Но такая граница слишком гладкая и плавная, давайте же добавим к ней немного шума. Для этого была сгенерирована текстура с шумом Перлина (параметры шума подбирались опытным путем), назовём её noise. Текстурные координаты для выборки из текстуры шума больше во много раз, чем текстурные координаты для tex_level. Это означает, что пока мы в игре видим лишь кусочек текстуры tex_level, шумовая текстура повторяется несколько раз в пределах экрана. Теперь просто сложим выборки из текстуры шума и из tex_level и только потом применим фильтр четкой границы:


В левой части tex_level + noise, в правой части фильтр четкой границы.

Техническая деталь: диапазон значений в текстуре noise от 0 до 1, поэтому к выборке из tex_level следует прибавлять (noise — 0.5) * k, где k – коэффициент возмущения границы (в проекте он равен 0.3).

Теперь осталось просто наложить текстуры. Текстура земли уже есть (это просто обычная текстура), а вот воды еще нет, нужно её сперва подготовить.

Алгоритм абсолютно такой же, как и с землей, только вместо выборки из R канала следует делать выборку из B канала, т.к. именно там и содержится вода. Еще одно отличие – это вместо обычного шума применяется анимированный шум (плавно меняющийся во времени) для создания волн на границе воды и воздуха. Создание анимированного шума выходит за рамки данной статьи. В этом этапе применяем текстуру неба, а роль воды выполняет синий цвет (подбирался опытным путем). Все шаги этапа получения слоя с водой проиллюстрированы ниже:


Слева направо: размытая граница воды, анимированный шум плюс фильтр, интерполяция из синего цвета в текстуру неба.

Следующий этап – это рендеринг бекгруанда. На этот раз выборку из tex_level производим из G канала. В этом этапе ничего принципиально нового нет: получаем маску бекграунда и интерполируем текстуру камней (это в данном случае) и текстуру воды из предыдущего этапа. Конечно, есть свои тонкости: на подводную часть бекграунда накладываются дополнительные фильтры, то же самое и для самой воды для придания эффекта толщи воды, но это выходит за рамки статьи. В этом же этапе рендерятся декоративные элементы: рыбки и водоросли. Окончательно слой с бекграундом выглядит так:


Технические подробности: для придания эффекта «шевелящихся водорослей» из-за подводных течений использовалось смещение x-компоненты текстурных координат при рендеринге спрайта с водорослями. Величина этого смещения считывалась всё из той же текстуры с анимированным шумом.

И последний этап – склейка. Получив в начале статьи маску земли, применяем её для интерполяции текстуры земли и слоя с бекграундом. Финальный результат выглядит так:


Развитие идеи. Что если требуется накладывать несколько текстур на землю, тогда просто добавляем ещё один слой, в котором пиксели земли раскрашиваем в 4 разных цвета (можно меньше, но не больше). Из этого слоя создается отдельная текстура-маска (4 цвета в слое – 4 цветовых канала в маске), но тогда придется делать дополнительные пять текстурных выборок вместо одной (одна из маски и 4 из соответствующих текстур земли).

Определение коллизий

Если в тайловых играх коллизии определяются достаточно просто: делаем выборку из массива тайлов и проверяем, попал/не попал в непроходимый тайл. То здесь это будет слишком грубо, т.к. теперь визуально нет тайлов, а есть поверхности под разными углами. Кстати, маска земли в сишном коде недоступна (она является всего лишь одним из этапов вычисления на видеокарте). Но у нас есть массив pix, размытый по Гауссу. В элементах этого массива интересен только младший байт, т.к. именно там хранится земля. Визуально этот массив выглядит так (приведён лишь фрагмент массива, попадающий в камеру, на самом деле в массиве содержится вся карта):


Это отличается от картинки с размытой границей, потому что там применялась билинейная фильтрация, а тут лишь сырые значения массива после размытия.

Значения из этого массива напоминают карту высот, можно подобрать такое значение высоты, которое примерно совпадает с визуальной границей земли (подбираем опытным путем). Для более точного определения высоты необходимо использовать билинейную интерполяцию. А если вычислить три высоты в окрестностях некой точки, то можно довольно точно определить градиент в этой точке, а он совпадает с нормалью к визуальной поверхности земли. Нормаль в этой игре использовалась лишь в одном месте – для огибания реактивной струёй поверхности земли:


Динамичная карта

Итак, первая проблема, поставленная в начале статьи, решена: никаких тайлов не видно, одни неровные скалистые пейзажи. А как быть с движущимися элементами? Это покажет вторая игра – аналог super meat boy:

Здесь много подвижных элементов: циркулярные пилы, двигающиеся по прямой или вращающиеся вокруг центра, перемещающаяся платформа с шипом и пилой, двери, рассыпающиеся тайлы. А пилы ещё имеют разный размер.


Процесс рендеринга полностью аналогичен первой игре, поэтому ограничимся рассмотрением формата карты. Карта из видео выглядит так (увеличено в 5 раз):

Данная карта состоит из шести (!) слоёв (всего в игре есть пять разных типов слоёв, все они здесь представлены). В отличие от предыдущей игры количество слоёв здесь может быть любым. В левом верхнем углу есть набор пикселей (их ровно столько, сколько и слоёв). Они-то как раз и задают тип слоя (это позволяет не заботиться о порядке и количестве слоёв). Первые два слоя очевидны: слой объектов – взаимодействующие элементы с игроком (земля, шипы, пилы, старт, выход, рассыпающиеся тайлы) и слой бекграунда. Четвёртый слой тоже, как и первый, является слоем объектов (4-й пиксель в левом верхнем углу тоже черный). Пришлось вынести некоторые объекты в этот слой, потому что они пересекались с другими объектами (теоретически одинаковых слоёв может быть сколько угодно).

Техническая особенность: в текстуру tex_level помещается только замля и бекграунд (воды в этой игре нет), а все остальные объекты считываются из файла уровня в массив.

  • Перемещающаяся группа. Все тайлы этой группы синхронно перемещаются (зеленый цвет). Группа содержит один главный тайл (сине-зеленый цвет), для которого в другом слое назначается траектория и скорость. В этой карте одна большая группа, в которую входит земля (становится что-то вроде тележки) с шипом и пилой. И четыре одинарных – только одна пила перемещается в каждой из них.
  • Вращающаяся группа (серый цвет)

В пятом слое указываются размеры пил в градациях красного. Если для пилы отсутствует красный пиксель из этого слоя, то размер её берется по умолчанию. А в шестом слое находятся траектории и скорости для перемещающихся групп в градациях серого, ну и скорости и направления для вращающихся пил. В некоторых слоях есть посторонние цвета, которые в данном слое не участвуют, при загрузке карты они просто игнорируются (например, почти во всех слоях есть черные пиксели земли, они были нужны лишь при составлении карты, для навигации относительно них).

Развитие идеи. Теоретически с помощью Paint можно создать карту для 3D-шутера, файл карты будет состоять из матрицы слоёв. Строка этой матрицы соответствует высоте слоя в игре, а в столбцах содержатся слои одного типа. Например, в 1-м столбце будет геометрия карты (один слой – это срез карты на данной высоте), во 2-м столбце можно назначать текстуры с помощью ключевых цветов пеинта, в 3-м расставлять объекты и т.д.

Как создать карту изображения с помощью Paint.NET

Я написал статью о том, как создать изображение для вашего сайта с помощью интерактивных областей или горячих точек с помощью GIMP. Этот вид кликабельного изображения называется картой изображений. Карты изображений уже давно существуют, но они все еще широко используются, чтобы предоставить веб-дизайнерам гибкость.


Да, мне пришлось покинуть Ubuntu на несколько минут и загрузить свою установку Windows (я знаю, что есть версия Ubuntu, но я не был уверен, все ли будет работать так же), но это стоило смены темпа.

Я пришел к выводу, что да, это возможно, но вам понадобится помощь плагина.

как создать карту изображения

Используйте редактор карт изображений, чтобы получить правильный код

Откройте редактор карт изображений: Эффекты -> Приложение изображений -> Создать карту изображений

Перетащите (делая вид, что вы видите окно) и назовите каждую точку доступа.

как создать карту изображения

Нажмите OK, когда закончите. Затем вы получите всплывающее окно с кодом, который вам нужно будет получить.

создать карту изображения

Редактировать код и подготовить его для вашего сайта

Откройте Блокнот или аналогичный текстовый редактор и вставьте код. Вы, вероятно, в конечном итоге весь код в одной строке. Самый простой способ — разделить линии так, как я это сделал на скриншоте ниже.

Как создать карту изображения с помощью отредактированного кода Paint.NET

Обратите внимание, что я добавил строку кода вверху. Эта строка кода указывает, где изображение находится на сервере (вы правильно его загрузили?) И название карты, используемой поверх изображения.

Так что да, есть еще один способ сделать карту изображения. Это также можно сделать вручную без помощи программы для редактирования изображений, но у кого есть время для этого?

Читайте также: