bsplinepolytraj
使用b样条生成多项式轨迹
描述
例子
计算二维平面运动的b样条轨迹
使用bsplinepolytraj
函数与给定的二维集合xy控制点。b样条使用这些控制点在多边形内创建轨迹。给出了轨迹的起始和结束时间。
CPTS = [1 4 4 3 -2 0;0 1 2 4 3 1];TPTS = [0 5];
计算b样条轨迹。函数输出轨迹位置(问
),速度(qd
),加速度(qdd
),时间向量(tvec
)和多项式系数(页
)的多项式,该多项式利用控制点得到路径点。
Tvec = 0:0.01:5;[q, qd, qdd, pp] = bsplinepolytraj(cpts,tpts,tvec);
画出结果。显示控制点和控制点内的轨迹。
图绘制(部署(1:),部署(2:)“xb - - - - - -”)举行所有Plot (q(1,:), q(2,:)) xlabel(“X”) ylabel (“Y”)举行从
绘制b样条轨迹的每个元素的位置。这些轨迹是时间参数化的三次分段多项式。
图(tvec,q)稍等所有情节([0:长度(部署)1],部署,“x”)包含(“t”) ylabel (的位置值)传说(“坐标”,“坐标”)举行从
用b样条插值
创建用b样条插值的路径点。
Wpts1 = [0 1 2.1 8 4 3];Wpts2 = [0 1 1.3 .8 .3 .3];WPTS = [wpts1;wpts2];L =长度(wpts) - 1;
形成用于计算控制多边形内点的矩阵
r = 0 (L+1,大小(wpts,1));A =眼睛(L+1);为i= 1:(L-1) A(i+1,(i):(i+2)) = [1 4 1];R (i+1,:) = 6*wpts(:,i+1)';结束
重写端点并进行选择r0
而且rL
.
A(2,1:3) = [3/2 7/2 1];A(l,(l -1):(l +1)) = [1 7/2 3/2];: r (1) = (wpt (: 1) + (wpt (:, 2), wpt (: 1)) / 2) ';r (,) = (wpt (:, end-1) + (wpt(:,结束)- wpt (:, end-1)) / 2) ';dInterior = (A\r)';
构造一个完整的控制多边形并使用bsplinepolytraj
用新的控制点计算一个多项式
cpts = [wpts(:,1) dInterior wpts(:,end)];T = 0:0.01:1;Q = bsplinepolytraj(cpts, [0 1], t);
画出结果。显示原始路径点,计算多边形和插值的b样条。
图;持有所有情节(wpts1 wpts2,“o”);情节(部署(1:),部署(2:)“x -”);情节(q (1:), q (2:));传奇(“原路点”,“计算控制多边形”,b样条的);
[1]法林,9.1节
输入参数
controlPoints
- - - - - -控制多边形的点
n——- - - - - -p矩阵
控制多边形b样条轨迹的点,指定为n——- - - - - -p矩阵,n轨道的维数和p是控制点的数目。
例子:[1 4 4 3 -2 0;0 1 2 4 3 1]
数据类型:单
|双
tInterval
- - - - - -轨迹的开始和结束时间
双元素向量
轨迹的开始和结束时间,指定为两个元素向量。
例子:10 [0]
数据类型:单
|双
输出参数
参考文献
[1]法林,杰拉德E。计算机辅助几何设计的曲线和曲面:实用指南.圣地亚哥,加州:学术出版社,1993年。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
版本历史
在R2019a中引入
Beispiel offnen
Sie haben eine geänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
你的身体和身体之间的联系MATLAB-Befehl
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。