bernsteinMatrix

Матрица Бернштейна

Синтаксис

Описание

пример

B = bernsteinMatrix(n,t), где t является вектором, возвращает length(t)-by- (n+1) Матрица Бернштейна B, таким образом B(i,k+1)= nchoosek(n,k)*t(i)^k*(1-t(i))^(n-k). Вот, индекс i работает от 1 до length(t)и индекс k выполняется из 0 на n.

Матрица Бернштейна также называется матрицей Безье.

Используйте матрицы Бернштейна для построения кривых Безье:

bezierCurve = bernsteinMatrix(n, t)*P
Вот, n+1 строки матрицы P задайте контрольные точки кривой Безье. Для примера, чтобы создать кривую Безье 3-D второго порядка, задайте контрольные точки как:
P = [p0x, p0y, p0z;  p1x, p1y, p1z;  p2x, p2y, p2z]

Примеры

свернуть все

Постройте график кривой Безье четвертого порядка, заданный контрольными точками p0 = [0 1], p1 = [4 3], p2 = [6 2], p3 = [3 0], p4 = [2 4]. Создайте матрицу с каждой строкой, представляющей управляющую точку.

P = [0 1; 4 3; 6 2; 3 0; 2 4];

Вычислите матрицу Бернштейна четвертого порядка B.

syms t
B = bernsteinMatrix(4,t);

Построение кривой Безье.

bezierCurve = simplify(B*P);

Постройте график добавления контрольных точек к графику.

fplot(bezierCurve(1), bezierCurve(2), [0, 1])
hold on
scatter(P(:,1), P(:,2),'filled')
title('Fourth-order Bezier curve')
hold off

Figure contains an axes. The axes with title Fourth-order Bezier curve contains 2 objects of type parameterizedfunctionline, scatter.

Создайте кривую Безье третьего порядка, заданную матрицей 4 на 3 P контрольных точек. Каждая контрольная точка соответствует строке матрицы P.

P = [0 0 0; 2 2 2; 2 -1 1; 6 1 3];

Вычислите матрицу Бернштейна третьего порядка.

syms t
B = bernsteinMatrix(3,t);

Построение кривой Безье.

bezierCurve = simplify(B*P);

Постройте график добавления контрольных точек к графику.

fplot3(bezierCurve(1), bezierCurve(2), bezierCurve(3), [0, 1])
hold on
scatter3(P(:,1), P(:,2), P(:,3),'filled')
hold off

Figure contains an axes. The axes contains 2 objects of type parameterizedfunctionline, scatter.

Построение кривой Безье третьего порядка с точкой оценки, заданной следующим 1-by- 101 векторная t.

t = 0:1/100:1;

Вычислите 101 третьего порядка-by- 4 Матрица Бернштейна и задайте контрольные точки.

B = bernsteinMatrix(3,t);
P = [0 0 0; 2 2 2; 2 -1 1; 6 1 3];

Построение и построение графика кривой Безье. Добавить на график линии сетки и управляющие точки.

bezierCurve = B*P;
plot3(bezierCurve(:,1), bezierCurve(:,2), bezierCurve(:,3))
hold on
grid
scatter3(P(:,1), P(:,2), P(:,3),'filled')
hold off

Figure contains an axes. The axes contains 2 objects of type line, scatter.

Входные параметры

свернуть все

Порядок приближения, заданный как неотрицательное целое число.

Точка оценки, заданная как число, символьное число, переменная, выражение или вектор.

Выходные аргументы

свернуть все

Матрица Бернштейна, возвращенная как length(t)-by- n+1 матрица.

См. также

| | |

Введенный в R2013b