兵马逐浪去,将象入海流。炮声震心动,惊起卧龙游。
我的博客园主页 --------- 我的知乎主页 --------- 我的github主页 --------- 我的csdn主页 --------- 我的新浪微博

回旋曲线的计算

 

 

 

 

 

 

 

1
2
3
4
%% 调用 clothoid函数,并将终点位置的曲率半径设置为 0.1:0.2:3
for i = 0.1:0.2:3
    clothoid(i)
end

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
%%%% 计算回旋曲线,并绘图
function [] = clothoid(Rmin)
 
N = 100; %%
sk = 2; %% 曲线长
c = 1 / Rmin / sk; %% 曲率变化率,即上文中的曲率变化率 a
x = zeros(1,N);
y = zeros(1,N);
 
for sk_i = sk / N : sk / N : sk
    result_x = 0; %% 初始化x坐标点的值
    result_y = 0; %% 初始化y坐标点的值
     
    for i = 0 : N %% 计算x
        result_x = result_x + ((-1) ^ i) * (c ^ (2 * i)) * (sk_i ^ (4 * i + 1)) / ((2 ^ (2 * i)) * (4 * i + 1) * fctorial(2 * i));
    end
    x(int32(sk_i / sk * N)) = result_x;
     
    for i = 0 : N %% 计算y
        result_y = result_y + ((-1) ^ i) * (c ^ (2 * i + 1)) * (sk_i ^ (4 * i + 3)) / ((2 ^ (2 * i + 1)) * (4 * i + 3) * fctorial(2 * i + 1));
    end
    y(int32(sk_i / sk * N)) = result_y;
     
end
 
hold on;
plot(-x,-y);
hold on;
plot(-x(end),-y(end),'*'); %%回旋曲线的最后一个点
axis equal;
end

 

 

 

posted @   leoking01  阅读(986)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
#back-to-top { background-color: #00CD00; bottom: 0; box-shadow: 0 0 6px #00CD00; color: #444444; padding: 10px 10px; position: fixed; right: 50px; cursor: pointer; }
点击右上角即可分享
微信分享提示