|
ViewDesignEngine
3.1.0
高性能 CAD 计算几何引擎
|
B 样条张量积曲面(非有理) 更多...
#include <bspline_surface.h>
Public 成员函数 | |
| BSplineSurface (std::vector< std::vector< Point3D >> control_grid, std::vector< double > knots_u, std::vector< double > knots_v, int degree_u, int degree_v) | |
| 构造 B 样条曲面 更多... | |
| Point3D | evaluate (double u, double v) const |
| 求曲面点 S(u,v) 更多... | |
| Vector3D | derivative_u (double u, double v) const |
| u 向偏导数 ∂S/∂u 更多... | |
| Vector3D | derivative_v (double u, double v) const |
| v 向偏导数 ∂S/∂v 更多... | |
| Vector3D | normal (double u, double v) const |
| 单位法向量 更多... | |
| int | degree_u () const |
| u 向阶次 更多... | |
| int | degree_v () const |
| v 向阶次 更多... | |
| const std::vector< double > & | knots_u () const |
| u 向节点向量 更多... | |
| const std::vector< double > & | knots_v () const |
| v 向节点向量 更多... | |
B 样条张量积曲面(非有理)
由 (nu+1)×(nv+1) 控制点网格、u/v 向各一个节点向量以及两个阶次定义。 参数域 (u,v) ∈ [knots_u[pu], knots_u[nu+1]] × [knots_v[pv], knots_v[nv+1]]。
求值公式:S(u,v) = Σ_i Σ_j P_{ij} · N_{i,pu}(u) · N_{j,pv}(v)
具有局部控制性:修改单个控制点仅影响相邻 pu×pv 个节点区间的曲面区域。
在文件 bspline_surface.h 第 22 行定义.
| vde::curves::BSplineSurface::BSplineSurface | ( | std::vector< std::vector< Point3D >> | control_grid, |
| std::vector< double > | knots_u, | ||
| std::vector< double > | knots_v, | ||
| int | degree_u, | ||
| int | degree_v | ||
| ) |
构造 B 样条曲面
| control_grid | (nu+1)×(nv+1) 控制点网格 |
| knots_u | u 向节点向量,长度 = nu + pu + 1 |
| knots_v | v 向节点向量,长度 = nv + pv + 1 |
| degree_u | u 向阶次 pu |
| degree_v | v 向阶次 pv BSplineSurface surf(grid,
{0,0,0,0, 0.5, 1,1,1,1}, // u knots (三次,5 个控制点)
{0,0,0, 0.5, 1,1,1}, // v knots (二次,4 个控制点)
3, 2);
BSplineSurface(std::vector< std::vector< Point3D >> control_grid, std::vector< double > knots_u, std::vector< double > knots_v, int degree_u, int degree_v) 构造 B 样条曲面 |
|
inline |
|
inline |
| Vector3D vde::curves::BSplineSurface::derivative_u | ( | double | u, |
| double | v | ||
| ) | const |
u 向偏导数 ∂S/∂u
| u | u 参数 |
| v | v 参数 |
| Vector3D vde::curves::BSplineSurface::derivative_v | ( | double | u, |
| double | v | ||
| ) | const |
v 向偏导数 ∂S/∂v
| u | u 参数 |
| v | v 参数 |
| Point3D vde::curves::BSplineSurface::evaluate | ( | double | u, |
| double | v | ||
| ) | const |
求曲面点 S(u,v)
| u | u 参数 |
| v | v 参数 |
|
inline |
|
inline |
| Vector3D vde::curves::BSplineSurface::normal | ( | double | u, |
| double | v | ||
| ) | const |
单位法向量
| u | u 参数 |
| v | v 参数 |