Практические упражнения 11.5.1. Матричная форма кривой Безье В ряде случаев кривые Безье выражают в терминах матриц, что может быть полезным, когда операции с ними производятся внутри компьютера (если, например, умножение матриц реализовано аппаратно [Faux, 61; Foley, 64]). Развивая этот подход, удобно определить два массива уже знакомых нам величин: массив полиномов Бернштейна: в* (0(О.....#(0) (11-35)

и массив контрольных точек:

P = (P0,P1,…,Pi). (11.36)

О Р(г) в уравнении (11.25) имеет вид суммы произведений. Покажите, что формально P(t) является скалярным произведением; другими словами, покажите, что Р(0 - В*(0 Р- (11.37)

О Используя приложение Б, покажите, что Р(г) может быть также выражено в виде произведения массива строки на массив столбца. Математически это выглядит так: Р(г) = BL(t) Р7", где Г означает транспонирование.

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

Bl(t) = 3(1-0*2 = (Л t\ t\ г3)-(0, 0,3,-3). (11.38) О Каждому полиному BkL (t) требуется свой массив коэффициентов. Чему равен этот массив для Bl(t)?

11.5. Свойства кривых Безье О Массив степеней t, вида (f°, г1, г2, г3), часто называют степенным базисом (power basis). Таким образом, массив Бернштейна BL(t) можно выразить путем помещения массивов коэффициентов для различных составляющих Вк (/) один за другим в матрицу Bez*1. Покажите это для случая L - 3:

О Соберите вместе все вышеприведенные ингредиенты для общего случая 1-го порядка и покажите, что кривая Безье может быть представлена в виде:

Заметим, что если вы захотите создать кривую по точкам с помощью полиномов, отличных от полиномов Бернштейна, то вы получите то же самое выражение (11.41), однако вместо матрицы Bez1 будет другая матрица. (Примеры и подробности можно найти в [Faux, 61; Foley, 64].) Такое единообразие значительно облегчает понимание процесса замены одного типа генерирования кривых на другой.


⇐ Предыдущая| |Следующая ⇒