71 [[nodiscard]]
int degree_u()
const {
return static_cast<int>(cp_.size()) - 1; }
77 [[nodiscard]]
int degree_v()
const {
return static_cast<int>(cp_[0].size()) - 1; }
80 std::vector<std::vector<Point3D>> cp_;
88 [[nodiscard]]
Point3D de_casteljau(
double t,
const std::vector<Point3D>& pts)
const;
int degree_u() const
u 向阶次
int degree_v() const
v 向阶次
Vector3D derivative_v(double u, double v) const
v 方向偏导数 ∂S/∂v
BezierSurface(std::vector< std::vector< Point3D >> control_grid)
构造 Bézier 曲面
Point3D evaluate(double u, double v) const
求曲面点 S(u,v)
Vector3D normal(double u, double v) const
单位法向量 N(u,v) = (∂S/∂u × ∂S/∂v) / |…|
Vector3D derivative_u(double u, double v) const
u 方向偏导数 ∂S/∂u
foundation::Vector3D Vector3D
双精度三维向量(重新导出)
foundation::Point3D Point3D
双精度三维点(重新导出)