如何把一个花键通过点代表一个路径

15的观点(30天)
我这里有这条路。路径点用红色标记。线穿过每一个点(线性)是蓝色的。的路径是通过编程的方式——如果你想让代码路径是:
% %创建路径
%来自南方的北方去
r = 15;
start_pos = (- r * 7 0 0);
%初始曲线的方法
路点= [start_pos;
1.9 - r * 5 0;
1.7 - r * 3 0;
- r * 2.5 - 1.8 0;
2.4 - r * 2 0;
- r * 1.5 - 3.4 0;
3.7 - r * 1 0;
- r * 0.5 3.4 0];
%设置恒定半径曲线
angle_req = 90;
一个= linspace (0 angle_req * 180(π/ 10);
round_x = r * sin() +锚点(,1);
round_y = r * cos (a) - r +锚点(,2);
i = 1:长度(a)
路点=[锚点;round_x (i) round_y 0];
结束
%设置退出
last_point =锚点(结束:);
路点=[锚点;
last_point (1) + r * 1 * cos (()) last_point (2) - r * 1 * sin (()) 0;
last_point (1) + r * 2.5 * cos (()) last_point (2) - r * 2.5 * sin (()) 0;
last_point(1) +马克斯(r * 5, 100) * cos (()) last_point (2) - max (r * 100) * sin (()), 0);
% last_point (1) + r * 1 * cos (()) - 0.2 * r *罪(())last_point (2) - r * 1 * sin (()) 0;
% last_point (1) + r * 2.5 * cos (()) - 0.5 * r *罪(())last_point (2) - r * 2.5 * sin (()) 0;
% last_point(1) +马克斯(r * 5, 100) * cos (()) - 0.5 * r *罪(())last_point (2) - max (r * 100) * sin (()), 0);
%的阴谋
情节(锚点(:,2),锚点(:1),“线宽”5)
持有;
情节(锚点(:,2),锚点(:1),“罗”,“线宽”3)
持有;
圣= sprintf (“% d学位(逆时针方向)% d米半径”、angle_req r);
网格;
标题(圣)
ylabel (“X距离(米));包含(“Y”距离(米))
我担心可能会有不连续的曲率,当我把锚点到驾驶场景和制定车辆的轨迹。
我想通过这些点放一个光滑样条(保证曲线具有连续曲率)然后重新取样我的锚点。我如何做到这一点,考虑到大多数样条拟合工具依赖于x值和y值之间一一对应?我试过曲线拟合工具箱,但给我一个错误关于这个信件。
2的评论

登录置评。

接受的答案

布鲁诺陈德良
布鲁诺陈德良 2021年3月24日
编辑:布鲁诺陈德良 2021年3月24日
这下你的代码
路点=独特(锚点,“行”,“稳定”);% < -这是必需的,因为你的例子重复点
%样条插值
t = cumsum([0;√总和(diff(锚点,1 1)。^ 2,2))));
ti = linspace (t (1), t(结束),512);
xyzi = interp1 (t,锚点、钛、样条的);
%的阴谋
情节(锚点(:,2),锚点(:1),”或“xyzi (: 2), xyzi (: 1),“b”);
平等的
你不必认为什么样的角度,它可以为多个绕组工作路径。
2的评论
布鲁诺陈德良
布鲁诺陈德良 2021年3月24日
是的 样条的 选择提供 cublic 样条。

登录置评。

答案(1)

darova
darova 2021年3月24日
旋转呢?
R = @ (a) (cosd (a)信德(a);信德(a) cosd (a)];%旋转maitrx
v1 = R (45) * (x (:) y (:)) ';%旋转使独家X坐标数据
x1 = linspace (v1 (1, 1), (1), 100);%的密度网格
日元=花键(v1 (: 1), (2,:), x1);%与样条插值
v2 = R (-45) * (x1 (:) y1 (:)) ';%旋转到原始位置
3评论

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!