Если вы хотите использовать эту функцию, вам нужно перестраивать путь каждый раз, когда вы хотите выполнить тест (только не вызывайте fill
или stroke
).
Что я обычно делаю вместо этогоиспользует мою собственную тестовую функцию «точка-в-многоугольнике» или мою собственную структуру пространственных данных, если объектов много и скорость важна.
Обратите внимание, что холст - это просто растровое изображение, и он не хранитКоманды, которые вы используете, чтобы нарисовать на нем.Вот почему он не может выполнить проверку после рисования фигуры, и вы можете проверить только текущий путь.
После того, как вы вызовете beginPath
, предыдущая геометрия пути отбрасывается, и у вас есть только затронутые пиксели, если выназывается fill
или stroke
.
Может быть, для вашего случая имеет смысл проверить цвет пикселя холста ...