帐号: 密码:
// 设为首页 // 收藏本站 // 请您留言 // 网址导航
远方教程-满足你的求知欲!
站内搜索:
HTML ASP PHP CSS DIV Dreamweaver Photoshop Word Excel PPT SEO技巧
您当前位置:网站首页 >> 统计之窗 >> MATLAB专区 >> 阅读文章

Matlab技巧24:MATLAB绘制B样条曲线详解

来源:远方教程 作者:远方教程 发布时间:2016-11-12 查看次数:12070 访问[新版]

3 B样条曲线的绘制

  根据B样条曲线的定义公式,曲线上任一点坐标值是参数变量u的函数,用矩阵形式表示

MATLAB绘制B样条曲线详解-远方教程

只需要确定控制顶点 di曲线的次数 k 以及基函数 Ni,k(u),就完全确定了曲线。

代码4:B样条曲线的绘制函数:

  1. % DrawSpline.m文件
  2. function DrawSpline(n, k, P, NodeVector)
  3. % B样条的绘图函数
  4. % 已知n+1个控制顶点P(i), k次B样条,P是2*(n+1)矩阵存控制顶点坐标, 节点向量NodeVector
  5.  
  6. plot(P(1, 1:n+1), P(2, 1:n+1),...
  7.                       'o','LineWidth',1,...
  8.                       'MarkerEdgeColor','k',...
  9.                       'MarkerFaceColor','g',...
  10.                       'MarkerSize',6);
  11. line(P(1, 1:n+1), P(2, 1:n+1));
  12. Nik = zeros(n+1, 1);
  13. for u = 0 : 0.005 : 1-0.005
  14.     for i = 0 : 1 : n
  15.         Nik(i+1, 1) = BaseFunction(i, k , u, NodeVector);
  16.     end
  17.     p_u = P * Nik;
  18.     if u == 0
  19.         tempx = p_u(1,1);
  20.         tempy = p_u(2,1);
  21.         line([tempx p_u(1,1)], [tempy p_u(2,1)],...
  22.         'Marker','.','LineStyle','-', 'Color',[.3 .6 .9], 'LineWidth',3);
  23.     else
  24.         line([tempx p_u(1,1)], [tempy p_u(2,1)],...
  25.         'Marker','.','LineStyle','-', 'Color',[.3 .6 .9], 'LineWidth',3);
  26.         tempx = p_u(1,1);
  27.         tempy = p_u(2,1);
  28.     end
  29. end

说明:调用 DrawSpline(n, k, P, NodeVector)  函数就能绘制曲线,注意输入变量要正确。

第1页 第2页 第3页
打印 打印 | 关闭 关闭 评论
相关文章
图片新闻
站内搜索  
搜索
猜您喜欢  
最新更新  
阅读排行  
关于我们 | 联系方式 | 大事记 | 免责声明 | | 给我留言
部分广告源自金山联盟2345联盟 QQ咨询 站长之家QQ群:232617873
Copyright 2024 远方教程 © All Rights Reserved.

回顶部