|
ViewDesignEngine
3.1.0
高性能 CAD 计算几何引擎
|
任意阶 Bézier 曲线 更多...
#include <bezier_curve.h>
Public 成员函数 | |
| BezierCurve (std::vector< Point3D > control_points) | |
| 构造 Bézier 曲线 更多... | |
| Point3D | evaluate (double t) const |
| 在参数 t 处求值曲线点 更多... | |
| Vector3D | derivative (double t, int order=1) const |
| 在参数 t 处求导数 更多... | |
| int | degree () const |
| 曲线阶次 更多... | |
| std::pair< double, double > | domain () const |
| 参数定义域 更多... | |
| const std::vector< Point3D > & | control_points () const |
| 控制点访问 更多... | |
| std::pair< BezierCurve, BezierCurve > | split (double t) const |
| 在 t 处将曲线一分为二 更多... | |
| BezierCurve | degree_elevate (int times=1) const |
| 升阶操作 更多... | |
任意阶 Bézier 曲线
通过 de Casteljau 递推算法定义的参数多项式曲线。 控制点 cp_ 的数量 = p+1(p 为次数)。 参数域 t ∈ [0, 1],端点插值首末控制点。
在文件 bezier_curve.h 第 18 行定义.
|
explicit |
构造 Bézier 曲线
| control_points | 控制点序列,点数 = degree + 1,最少 2 个 |
|
inline |
|
inline |
| BezierCurve vde::curves::BezierCurve::degree_elevate | ( | int | times = 1 | ) | const |
升阶操作
| times | 升阶次数,≥ 1 |
| Vector3D vde::curves::BezierCurve::derivative | ( | double | t, |
| int | order = 1 |
||
| ) | const |
在参数 t 处求导数
| t | 参数值,范围 [0, 1] |
| order | 导数阶数,1 = 一阶(切向量),2 = 二阶(曲率相关) |
|
inline |
| Point3D vde::curves::BezierCurve::evaluate | ( | double | t | ) | const |
在参数 t 处求值曲线点
| t | 参数值,范围 [0, 1] |
| std::pair<BezierCurve, BezierCurve> vde::curves::BezierCurve::split | ( | double | t | ) | const |
在 t 处将曲线一分为二
| t | 分割参数,范围 [0, 1] |