52 [[nodiscard]]
int degree()
const {
return static_cast<int>(cp_.size()) - 1; }
58 [[nodiscard]] std::pair<double, double>
domain()
const {
return {0.0, 1.0}; }
64 [[nodiscard]]
const std::vector<Point3D>&
control_points()
const {
return cp_; }
77 [[nodiscard]] std::pair<BezierCurve, BezierCurve>
split(
double t)
const;
90 std::vector<Point3D> cp_;
BezierCurve degree_elevate(int times=1) const
升阶操作
const std::vector< Point3D > & control_points() const
控制点访问
std::pair< double, double > domain() const
参数定义域
Point3D evaluate(double t) const
在参数 t 处求值曲线点
BezierCurve(std::vector< Point3D > control_points)
构造 Bézier 曲线
Vector3D derivative(double t, int order=1) const
在参数 t 处求导数
std::pair< BezierCurve, BezierCurve > split(double t) const
在 t 处将曲线一分为二
foundation::Vector3D Vector3D
双精度三维向量(重新导出)
foundation::Point3D Point3D
双精度三维点(重新导出)