Как классифицировать точки по определенной полилинии

Установите флаг при наведении:

var over = false;
$('#elem').hover(function() {
  over = true;
},
function () {
  over = false;
});

Затем просто проверьте свой флаг.

0
задан Han Zhengzu 28 February 2019 в 02:30
поделиться

1 ответ

Вы можете применить простое свойство из топологии.

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

Теперь, выберите любую контрольную точку, которая помечена как для региона - чтобы определить «Север» и «Юг», у вас должна быть хотя бы одна такая точка. w.l.o.g. предположим, что это «южная» точка, называемая Z.

Теперь, для каждой точки A, которую вы хотите классифицировать, нарисуйте непрерывный путь (прямой обычно проще, но не обязателен) от A до Z. Найти пересечения этого пути с границей. Если у вас четное количество пересечений, то A относится к тому же классу («юг»), что и Z; с другой стороны, это в другом классе («Север»).

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

0
ответ дан Prune 28 February 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: