C++实现贝塞尔曲线
已经存在许多讲解得比较清楚的解释。如https://www.jianshu.com/p/0c9b4b681724
贝塞尔曲线包含多阶。贝塞尔曲线的阶数和次数是一样的,二阶贝塞尔,三个点,最高次数二次。例:二阶贝塞尔:三个点,两个线段,以所有等比的点组合成的曲线叫做二阶贝塞尔曲线。如下图。


根据贝塞尔曲线的公式直接根据控制点缺点阶数,。

定义.h头文件
class Bezier {
public:
Bezier() = default;
const std::vector<hybrid_astar::Vector2D>& CalculateSpline(
const std::vector<hybrid_astar::Vector2D>& control_points,
const int& points_number);
void CalculateSecond();
void CalculateCubic();
private:
int ctrl_num_; //控制点数量
int order_; //阶数,表示曲线为几阶曲线,为控制点数-1
int knot_num_; //节点数是分布在0-1之间有多少个点
std::vector<hybrid_astar::Vector2D> control_points_;
std::vector<hybrid_astar::Vector2D> path_points_;
};
定义cpp文件
const std::vector<hybrid_astar::Vector2D>& Bezier::CalculateSpline(
const std

本文详细介绍使用C++实现二阶和三阶贝塞尔曲线的方法。通过定义Bezier类,利用控制点计算不同阶数的贝塞尔曲线。适用于计算机图形学和路径规划等领域。
最低0.47元/天 解锁文章





