Практические упражнения 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].) Такое единообразие значительно облегчает понимание процесса замены одного типа генерирования кривых на другой.