Квадратичная кривая Безье состоит из 2 координатных функций - x (t) и y (t), где.
Эти функции могут иметь максимум или минимум (точки, где x '(t) = 0 и y'(t) = 0) и эти точки являются граничными точками aabb.
Таким образом, алгоритм выглядит так:
- Представьте себе x0, y0, x1, y1, x2, y2известны и вычисляют значения t (x0, x1, x2) и t (y0, y1, y2), когда x '(t) = 0 и y' (t) = 0 соответственно.
- Рассчитать оба значенияи проверьте, являются ли они> = 0 и <= 1. Если они оценивают точки квадратичного Безье. </li>
- Возьмите первый и последний баллы.
- Теперь у вас есть 4 балла (или, может быть, меньше), используйте их для расчета AABB.
Кстати:
t (x0, x1, x2) = (x0 - x1) / (x2 - 2 *x1 + x0)
t (y0, y1, y2) = (y0 - y1) / (y2 - 2 * y1 + y0)
Полный код можно найти здесь: https://github.com/keyten/Graphics2D/blob/Delta/Core/Curve.Math.js#L295