Как вычислить точки пересечения строки и произвольной формы?

Существует ли способ геометрически вычислить точки пересечения строки и произвольного графического контура? Я знаю, где все строки и кривые находятся в пути, и я использую элемент холста HTML5, если это помогает кому-либо. В основном у меня есть доступ ко всем командам рисования холста и их аргументам. Например, если API назвали с lineTo, то moveTo, то дуга у меня есть вся та информация. Каждый вызов к API хранится в массиве. У меня есть определение пути, я просто хочу выяснить, где строка пересекает путь. Ниже изображение, показывающее пример точек, которые я должен был бы найти.

сопроводительный текст http://cl.ly/3228b0e7ea32b172e960/content

Спасибо за любую справку! Снова, я сделал бы это геометрически, а не пиксель, базирующийся, если это возможно.

6
задан devongovett 20 June 2010 в 02:25
поделиться

4 ответа

Возможно, вы захотите взглянуть на библиотеку геометрии Javascript Кевина Линдси - она, вероятно, содержит все алгоритмы пересечения, которые вы ищете: http://www.kevlindev.com/geometry/index.htm

7
ответ дан 17 December 2019 в 00:03
поделиться

Не зная, как определяется ваш графический путь, невозможно ответить на ваш вопрос с помощью конкретного алгоритма.В этой книге есть решение по алгоритмам для отрезков прямых линий.

0
ответ дан 17 December 2019 в 00:03
поделиться

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

0
ответ дан 17 December 2019 в 00:03
поделиться

Вы хотите пересечь линию и "сплайн" x(t), y(t), который должен быть полиномом не более 4-й степени для x(t) и y(t). Вы решаете уравнения, но вам необходимо знать все параметры. Если решение находится вне диапазона (отрезок прямой и отрезок сплайна имеют начало и конец) - отбросьте его. Похожие вопросы:

Точка пересечения сплайна и прямой

0
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

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