Алгоритм для нахождения ограничительной рамки закрытых кривых Безье?

Я ищу алгоритм для нахождения ограничительной рамки (макс. точки / минимальные точки) закрытой квадратичной кривой Безье в Оси декартовой системы координат:

input: C (a closed bezier curve)
output: A B C D points

Изображение http://www.imagechicken.com/uploads/1270586513022388700.jpg

Примечание: выше изображения показывает плавную кривую. это могло быть не гладко. (имейте углы),

24
задан sorush-r 6 April 2010 в 19:56
поделиться

2 ответа

Что ж, я бы сказал, вы начинаете с добавления всех конечных точек в вашу ограничивающую рамку. Затем вы просматриваете все элементы Безье. Я предполагаю, что речь идет о следующей формуле:

Quadratic Bezier from Wikipedia

Из нее извлеките две формулы для X и Y соответственно. Проверьте оба на наличие экстремумов, взяв производную (нулевые переходы). Затем добавьте соответствующие точки в ограничительную рамку.

7
ответ дан 28 November 2019 в 23:20
поделиться

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

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

4
ответ дан 28 November 2019 в 23:20
поделиться
Другие вопросы по тегам:

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