|
ViewDesignEngine
3.1.0
高性能 CAD 计算几何引擎
|
NURBS 曲线(Non-Uniform Rational B-Spline) 更多...
#include <nurbs_curve.h>
Public 成员函数 | |
| NurbsCurve (std::vector< Point3D > control_points, std::vector< double > knots, std::vector< double > weights, int degree) | |
| 构造 NURBS 曲线 更多... | |
| 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 |
| 控制点访问 更多... | |
| const std::vector< double > & | weights () const |
| 权重访问 更多... | |
| const std::vector< double > & | knots () const |
| 节点向量访问 更多... | |
NURBS 曲线(Non-Uniform Rational B-Spline)
B 样条的有理推广,引入权重 w_i 使每个控制点的影响可调。 通过投影变换将齐次坐标中的 B 样条映射到 3D 空间。
求值公式:C(t) = Σ N_{i,p}(t) · w_i · P_i / Σ N_{i,p}(t) · w_i
关键性质:
在文件 nurbs_curve.h 第 26 行定义.
| vde::curves::NurbsCurve::NurbsCurve | ( | std::vector< Point3D > | control_points, |
| std::vector< double > | knots, | ||
| std::vector< double > | weights, | ||
| int | degree | ||
| ) |
构造 NURBS 曲线
| control_points | 控制点序列 |
| knots | 节点向量 |
| weights | 权重序列,必须与 control_points 等长,各分量 > 0 |
| degree | 阶次 p |
|
inline |
|
inline |
| Vector3D vde::curves::NurbsCurve::derivative | ( | double | t, |
| int | order = 1 |
||
| ) | const |
在参数 t 处求导数
| t | 参数值 |
| order | 导数阶数 |
| std::pair<double, double> vde::curves::NurbsCurve::domain | ( | ) | const |
参数定义域
| Point3D vde::curves::NurbsCurve::evaluate | ( | double | t | ) | const |
在参数 t 处求值
| t | 参数值 |
|
inline |
|
inline |