Квадратичная кривая Безье: вычисление касательной

У меня есть квадратичная кривая Безье, и я хочу вычислить наклон касательной в данной точке. Например, пусть это будет средняя точка квадратичной кривой Безье, поэтому t = 0,5 (см. Изображение ниже по ссылке). Я вычислил первую производную формулы для квадратичной кривой Безье; однако я получаю 400 в качестве значения наклона, хотя оно должно быть 0. Может быть, я неправильно использую первую производную? Я знаю, что могу также вычислить касательные, используя тригонометрические функции; однако я бы хотел сделать это, используя первую производную, разве это не возможно? Спасибо за подсказку!

Для пояснения / обратите внимание: меня интересует общий способ получить наклон в произвольной заданной точке на квадратичной кривой Безье, а не только получить касательную в начальной и конечной точках.

Изображение моей проблемы, включая текст выше: http://cid-0432ee4cfe9c26a0.skydrive.live.com/self.aspx/%c3%96ffentlich/Quadratic%20Bezier%20Curve.pdf

Большое спасибо за любую подсказку!


person stefan.at.wpf    schedule 02.04.2010    source источник
comment
Ссылка кажется мертвой. Было бы неплохо, если бы вы могли перевести свою формулу в сам вопрос.   -  person Soviut    schedule 11.04.2015


Ответы (2)


Используя вашу формулу для B'(t), оцененную как t=1/2, мы получаем

B'(1/2) = -P0 + P2

Судя по вашему графику, P0 = (0,0) и P2 = (400,0). Так

B'(1/2) = (400,0).

Это «скорость» точки, движущейся по B (t) при t = 1/2.

(400,0) - горизонтальный вектор с величиной 400.

Так что все как должно быть. Поскольку B '(t) горизонтальный, у него есть «наклон» 0.

person unutbu    schedule 02.04.2010
comment
Большое спасибо за ваш ответ, но t всегда стирается из набора 2t * (0) +400, потому что он умножается на 0. Таким образом, наклон в каждой точке будет равен 0, что неверно !? - person stefan.at.wpf; 03.04.2010
comment
@stefan: Это правда, что x-компонента B '(t) всегда равна 400, но это не верно для y-компоненты. Попробуйте y0 = 0, y1 = 100, y2 = 0 для y-компонентов P0, P1, P2 и вычислите y '(t). Вы должны обнаружить, что y '(t) действительно зависит от t. - person unutbu; 03.04.2010
comment
@ Поскольку наклон увеличивается за счет пробега, наклон равен не x '(t), а скорее y' (t) / x '(t). - person unutbu; 03.04.2010
comment
Спасибо, понял, почему B '(t) равно 400. И y' (t) / x '(t) отлично работает. Спасибо большое за помощь! - person stefan.at.wpf; 04.04.2010