Существует ли способ геометрически вычислить точки пересечения строки и произвольного графического контура? Я знаю, где все строки и кривые находятся в пути, и я использую элемент холста HTML5, если это помогает кому-либо. В основном у меня есть доступ ко всем командам рисования холста и их аргументам. Например, если API назвали с lineTo, то moveTo, то дуга у меня есть вся та информация. Каждый вызов к API хранится в массиве. У меня есть определение пути, я просто хочу выяснить, где строка пересекает путь. Ниже изображение, показывающее пример точек, которые я должен был бы найти.
сопроводительный текст http://cl.ly/3228b0e7ea32b172e960/content
Спасибо за любую справку! Снова, я сделал бы это геометрически, а не пиксель, базирующийся, если это возможно.
Возможно, вы захотите взглянуть на библиотеку геометрии Javascript Кевина Линдси - она, вероятно, содержит все алгоритмы пересечения, которые вы ищете: http://www.kevlindev.com/geometry/index.htm
Не зная, как определяется ваш графический путь, невозможно ответить на ваш вопрос с помощью конкретного алгоритма.В этой книге есть решение по алгоритмам для отрезков прямых линий.
Если у вас есть уравнения для всего, то вы можете это сделать (в теории). На практике это не так просто (особенно в общем случае). В этом обсуждении есть несколько хороших советов по пересекающимся линиям и кривым Безье.
Вы хотите пересечь линию и "сплайн" x(t), y(t), который должен быть полиномом не более 4-й степени для x(t) и y(t). Вы решаете уравнения, но вам необходимо знать все параметры. Если решение находится вне диапазона (отрезок прямой и отрезок сплайна имеют начало и конец) - отбросьте его. Похожие вопросы: