bernsteinMatrix
Матрица Бернстайна
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
bernsteinMatrix(n
, t
)
bernsteinMatrix(n, t)
, где t
является вектором длины m
, возвращает m
-by-(n+1)
матрица Бернстайна M
, такой что M(i,k+1) = binomial(n,k)*t[i]^k*(1-t[i])^(n-k)
. Здесь, индекс i
запускается от 1 до m
и индекса выполнения k
от 0
до n
. Смотрите Пример 2 и Пример 3.
Матрица Бернстайна также называется матрицей Безье.
Используйте матрицы Бернстайна, чтобы создать Кривые Безье:
bezierCurve = bernsteinMatrix(n, t)*P
P
задают контрольные точки Кривой Безье. Например, чтобы создать 3-D Кривую Безье второго порядка, задайте контрольные точки как:P = [p0x, p0y, p0z; p1x, p1y, p1z; p2x, p2y, p2z]
Постройте четвертый порядок 2-D Кривая Безье, заданная контрольными точками p0 = [0, 1]
, p1 = [4, 3]
, p2 = [6, 2]
, p3 = [3, 0]
, p4 = [2, 4]
. Создайте матрицу с каждой строкой, представляющей контрольную точку:
P := matrix([[0, 1], [4, 3], [6, 2], [3, 0], [2, 4]]):
Создайте четвертый порядок матрица Бернстайна B
:
B := bernsteinMatrix(4, t)
Создайте Кривую Безье:
bezierCurve := simplify(B*P)
Постройте точки кривой и контрольные точки:
plot(plot::PointList2d(P), plot::Curve2d(bezierCurve, t = 0..a, a = 0..1))
Создайте третий порядок 3-D Кривая Безье, заданная 3х3 матричным P
контрольных точек. Каждая контрольная точка соответствует строке матричного P
.
P := matrix([[0, 0, 0], [2, 2, 2], [2, -1, 1], [6, 1, 3]]):
Создайте матрицу Бернстайна:
B := bernsteinMatrix(3, t)
Создайте Кривую Безье:
bezierCurve := simplify(B*P)
Постройте контрольные точки и Кривую Безье:
plot(plot::PointList3d(P), plot::Curve3d(bezierCurve, t = 0..a, a = 0..1))
|
Неотрицательное целое число. |
|
Арифметическое выражение, список выражений или вектор выражений. В MuPAD®, |
nops(t)
⨉(n+1)
матрица доменного типа Dom::Matrix()
.
Полином Бернстайна степени n
задан можно следующим образом:
Здесь,
базисные полиномы Бернстайна, и
Коэффициенты
Полином Бернстайна дан умножением матриц матрицы Бернстайна и вектором коэффициентов: