#graphics #3d #linear-algebra #transformation #vector-graphics
Вопрос:
Предположим, например, что у нас есть кубическая кривая Безье в ограниченном декартовом пространстве, где x колеблется от 0 до 500, а y колеблется от 0 до 300:
И я хочу манипулировать этой кривой с помощью матриц масштаба, поворота и преобразования, с ограничениями, которые я не хочу, чтобы какая-либо точка на этой кривой выходила за пределы сетки 500×300.
Учитывая эту кривую, есть ли способ априори вычислить (отредактировать: т. Е. спрогнозировать) пределы параметров масштаба, поворота и трансляции, чтобы результирующие преобразования кривой никогда не заставили ее выйти за пределы этой сетки?
Ответ №1:
Вам просто нужна ограничивающая рамка кривой, а затем примените преобразования к ней, чтобы увидеть, когда она выйдет за пределы диапазона. Просто повторите движение по кривой, чтобы найти ограничивающую рамку.
Комментарии:
1. Это определенно упростило бы ситуацию. Но есть ли способ эффективно вычислить, когда коробка выйдет за пределы диапазона, не применяя преобразования методом грубой силы?
2. Вам нужно всего лишь отследить 4 точки, чтобы увидеть, какая из них может выйти за рамки. Это будет эффективно. Каждая точка представляет собой матрично-векторное произведение для вычисления.