本文,用BSplineFunction来拟合曲线或者曲面。
工具/原料
电脑
Mathematica11+
方法/步骤
1、给出一系列平面上的点:a=RandomReal[{-5,5},{36,2}]
2、用BSplineFunction来拟合这些点:f=BSplineFunction[a]
3、函数的定义域是0到1;函数的输出值是一个二元向量:f[0.366]
4、在平面里面,用折线段连结a里面的点:Graphics[{Red,Point[a]巳呀屋饔,Green,Line[a]},Axes->True]
5、加画f的图像:Show[Graphics[{Red,Point[瞢铍库祢a],Green,Line[a柯计瓤绘]},Axes->True],ParametricPlot[f[t],{t,0,1},PlotStyle->Blue]]
6、第二个例子,给出一组三维直角坐标点:a=RandomReal[{-5,5},{10,3,3}]
7、拟合出B样条函数f,但是不封闭:f=BSplineFunction[a,SplineClosed->False]
8、画出曲面图形:aa=绯摺驼予ParametricPlot3D[f[u,v],{u,0,5/6},{v,0,1},PlotStyle->Gre髫潋啜缅en,Axes->False,Boxed->False]
9、拟合封闭的B样条函数f:f=BSplineFunction[a,SplineClosed->True]
10、封闭的曲面如下图。