B样条插值python b样条插值优缺点

您所在的位置:网站首页 样条插值优缺点 B样条插值python b样条插值优缺点

B样条插值python b样条插值优缺点

2024-06-13 22:43| 来源: 网络整理| 查看: 265

B样条曲线

        B样条是使用更广泛的逼近样条类。B样条有两个贝塞尔样条所不具备的优点:1、B样条多项式次数可独立于控制点数目(有一定限制);2、B样条允许局部控制曲线或曲面。缺点是B样条比贝塞尔样条更复杂。我们可以把沿B样条曲线的坐标位置的计算表示写成混合函数公式的表达式:

B样条插值python b样条插值优缺点_均匀B样条

        B样条的局部控制可以由定义在u取值范围中子区间上的混合函数来实现。B样条曲线的混合函数由Cox-deBoor递归公式定义为

B样条插值python b样条插值优缺点_B样条曲线_02

所选的一组子区间端点Uj称为节点(kont),而选定的一组之区间的端点整体称为节点向量(kont vector)。可以选择满足Uj=InsertNextPoint(p0); points->InsertNextPoint(p1); points->InsertNextPoint(p2); points->InsertNextPoint(p3); // spline points vtkNew spheresource; spheresource->SetPhiResolution(20); spheresource->SetThetaResolution(20); spheresource->SetRadius(10); spheresource->Update(); vtkNew ctrlpointsdata; ctrlpointsdata->SetPoints(points); vtkNew ctrlpointsmapper; ctrlpointsmapper->SetInputData(ctrlpointsdata); ctrlpointsmapper->SetSourceConnection(spheresource->GetOutputPort()); ctrlpointsmapper->Update(); vtkNew ctrlpointsactor; ctrlpointsactor->SetMapper(ctrlpointsmapper); ctrlpointsactor->GetProperty()->SetColor(1.0, 0.0, 0.0); //spline vtkNew spline; //open uniform int d = 4; std::vector knots = { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f,1.0f,1.0f }; open uniform //int d = 3; //std::vector knots = { 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f}; spline->SetParameters(points, d, knots); vtkNew splinemapper; splinemapper->SetInputConnection(spline->GetOutputPort()); vtkNew splineactor; splineactor->SetMapper(splinemapper); splineactor->GetProperty()->SetColor(1.0, 0.0, 0.0); //render vtkNew renderer; renderer->AddActor(ctrlpointsactor); renderer->AddActor(splineactor); renderer->SetBackground(1.0, 1.0, 1.0); vtkNew renderwindow; renderwindow->SetSize(400, 200); renderwindow->AddRenderer(renderer); vtkNew interactor; interactor->SetRenderWindow(renderwindow); vtkNew style; interactor->SetInteractorStyle(style); interactor->Initialize(); interactor->Start(); return EXIT_SUCCESS; }运行结果

1、均匀的节点向量

B样条插值python b样条插值优缺点_B样条插值python_04

2、开放均匀的节点向量

B样条插值python b样条插值优缺点_B样条插值python_05



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3