rpmak

Соедините рациональный сплайн

Синтаксис

rp = rpmak(breaks,coefs)
rp = rpmak(breaks,coefs,d)
rpmak(breaks,coefs,sizec)
rs = rsmak(knots,coefs)
rs = rsmak(shape,parameters)

Описание

Оба rpmak и rsmak соедините рациональный сплайн от минимальной информации. rsmak также оборудован, чтобы обеспечить рациональные сплайны, которые описывают стандартные геометрические фигуры. Рациональный сплайн должен быть скаляром - или с векторным знаком.

rp = rpmak(breaks,coefs) оказывает то же влияние как команда ppmak(breaks, coefs) за исключением того, что получившаяся ppform помечена как рациональный сплайн, i.e., как rpform.

Чтобы описать, что это означает, позвольте R быть кусочным полиномом, соединенным командой ppmak(breaks,coefs), и позвольте r (x) = s (x)/w (x) быть рациональным сплайном, соединенным командой rpmak(breaks,coefs). Если v значение R в x, затем v(1:end-1)/v(end) значение r в x. Другими словами, R (x) = [s (x); w (x)]. Соответственно, размерность цели r является той меньше, чем размерность цели R. В частности, размерность (цели) R должна быть по крайней мере 2, т.е. коэффициентами, заданными coefs должен быть d- векторы с > 1. Смотрите ppmak поскольку, как входные массивы breaks и coefs интерпретируются, следовательно как они должны быть заданы для того, чтобы произвести конкретный кусочный полином.

rp = rpmak(breaks,coefs,d) оказывает то же влияние как ppmak(breaks,coefs,d+1), за исключением того, что получившаяся ppform помечена как являющийся rpform. Обратите внимание на то, что желание иметь тот дополнительный третий аргумент указывает, что размерность цели требует различных значений для него в rpmak и ppmak для того же массива коэффициентов coefs.

rpmak(breaks,coefs,sizec) оказывает то же влияние как ppmak(breaks,coefs,sizec) за исключением того, что получившаяся ppform помечена как являющийся rpform, и целевая размерность взята, чтобы быть sizec(1)-1.

rs = rsmak(knots,coefs) так же связан с spmak(knots,coefs), и rsmak(knots,coefs,sizec) к spmak(knots,coefs,sizec). В частности, rsmak(knots,coefs) соединяет рациональный сплайн в B-форме, i.e., это обеспечивает rBform. Смотрите spmak поскольку, как входные массивы knots и coefs интерпретируются, следовательно как они должны быть заданы для того, чтобы произвести конкретный кусочный полином.

rs = rsmak(shape,parameters) обеспечивает рациональный сплайн в rBform, который описывает форму, задаваемую вектором символов shape и дополнительный дополнительный parameters. Определенный выбор:

rsmak('arc',radius,center,[alpha,beta])
rsmak('circle',radius,center)
rsmak('cone',radius,halfheight)
rsmak('cylinder',radius,height)
rsmak('southcap',radius,center)
rsmak('torus',radius,ratio)

с 1 значение по умолчанию для radius, halfheight и height, и источник значение по умолчанию для center, и дуга, пробегающая все углы от alpha к beta (значением по умолчанию является [-pi/2,pi/2]), и конус, цилиндр и торус, строивший в начале координат с их главным кругом в (x, y) - плоскость и незначительный круг торуса, имеющего радиус radius*ratio, значение по умолчанию для ratio быть 1/3.

От них можно сгенерировать связанные формы аффинными преобразованиями, с помощью fncmb(rs,transformation).

Весь fn... команды кроме fnint, fnder, fndir может обработать рациональные сплайны.

Примеры

Команды

runges = rsmak([-5 -5 -5 5 5 5],[1 1 1; 26 -24 26]); 
rungep = rpmak([-5 5],[0 0 1; 1 -10 26],1);

оба предоставляют описание рационального полиномиального r (x) = 1 / (x 2 + 1) на интервале [-5.. 5]. Однако вне интервала [-5.. 5], функция, данная runges нуль, в то время как рациональный сплайн, данный rungep соглашается с 1 / (x 2 + 1) для каждого x.

Фигура вращаемого конуса сгенерирована командами

fnplt(fncmb(rsmak('cone',1,2),[0 0 -1;0 1 0;1 0 0]))
axis equal, axis off, shading interp

Вращаемый конус дан рациональным квадратичным сплайном

Спираль, показывая спираль с несколькими обмотками, сгенерирована командами

arc = rsmak('arc',2,[1;-1],[0 7.3*pi]);
[knots,c] = fnbrk(arc,'k','c');
helix = rsmak(knots, [c(1:2,:);aveknt(knots,3).*c(3,:); 
c(3,:)]);
fnplt(helix)

Спираль

Для далее проиллюстрированных примеров смотрите NURBS и Другие Рациональные Сплайны

Смотрите также

| | |