Вещи, которые должны быть блиты только внутри многоугольника (Pygame) - PullRequest
0 голосов
/ 28 мая 2018

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

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

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

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Используйте для этого matplotlib.Очень простой пример (присвойте значения вершинам квадрата):

  from matplotlib.path import Path

  verts = [
             left_bottom,
             left_top,
             right_top,
             right_bottom,
             (0, 0),
            ]

    codes = [
             Path.MOVETO,
             Path.LINETO,
             Path.LINETO,
             Path.LINETO,
             Path.CLOSEPOLY,
             ]

    path = Path(verts, codes)

   if path.contains_point((x, y)):
       print("True")
0 голосов
/ 01 июня 2018

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

В качестве альтернативы, скажем, у вас есть карта в виде набора полигонов, и выхотите определить, находится ли случайная точка на земле или нет.Логика там называется трассировкой лучей и объясняется лучше здесь: Как определить, находится ли 2D-точка в пределах многоугольника?

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