赞
踩
最近刚看完贝塞尔曲线,工作就遇到了相应的需求,所以写一下过程。主要讲的是自动驾驶中,车换道时用到贝塞尔曲线,当然其他的很多领域也会有,例如图形学等。
在车遇到障碍物或者是前车速度较慢的时候,就会进入换道逻辑,那么如何从一个车道换到另外一个车道,同时要保证车里面的人的一个体感问题,就是如何平滑过度,这就是为什么要使用贝塞尔曲线来做换道时的轨迹生成了,OK那开始讲贝塞尔曲线了。
对于一阶贝塞尔曲线,从上图我们可以看到,它是一条直线,通过几何知识,很容易根据t 的值,得出线段上某个点的坐标:
B
1
(
t
)
=
P
0
+
(
P
1
−
P
0
)
t
B_{1}(t) = P_{0} + (P_{1}-P_{0})t
B1(t)=P0+(P1−P0)t
或者
B
1
(
t
)
=
(
1
−
t
)
P
0
+
P
1
t
,
0
<
t
<
1
B_{1}(t) = (1-t)P_{0} + P_{1}t , 0<t<1
B1(t)=(1−t)P0+P1t,0<t<1
一阶贝塞尔曲线, 就是根据t来的线性插值。P0和P1表示的是一个向量[ x , y ] , 其中x、y是分别按照这个公式来计算的。
定义:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。
上面的红色曲线就是通过二阶公式生成的贝塞尔曲线(是不是很平滑
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。