Java - рисовать только в определенных областях - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь нарисовать круги (изображающие людей) на PNG-карте Земли.Очевидно, я не хочу, чтобы люди плавали в океанах по мере расширения моделируемой цивилизации.Как мне создать определенные области на карте, на которых я могу рисовать?Могу ли я просто ограничить фон PNG?

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

1 Ответ

0 голосов
/ 23 сентября 2019

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

  • Попробуйте определить набор функций на вашем PNG-изображении и только создавать (или не создавать) цивилизации, если эти функции встречаются.
  • Сделайте «карту» из вашей карты.Определите области на вашем PNG-изображении, где нерест разрешен и где не разрешен.Вы можете использовать это, например, с помощью класса Polygon.
  • Создайте второе изображение PNG, в котором вы делаете все океаны чисто прозрачными.Тогда только порождают цивилизации на исходном изображении в местах, где изображение с прозрачностью непрозрачно.

Просто куча идей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...