Mathematica通过一系列点拟合B样条函数的方法
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 -> Green, Axes -> False, Boxed -> False]

9、拟合封闭的B样条函数f:
f = BSplineFunction[a, SplineClosed -> True]

10、封闭的曲面如下图。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:97
阅读量:64
阅读量:65
阅读量:124
阅读量:167