http://zhan.renren.com/3caddesign

High-speed,high-precision and high-efficiency A1-CNC.

MATLAB 样条工具箱可以通过节点获得样本函数值,但不能根据x求y或z,也不能求得样本曲线方程。例如:

ctrlpoints=[

0 -1.2 -1.6 -1.4 -1 -0.5 -0.35 -0.6 -1.6

-0.2 -0.5 -1 -1.5 -2.2 -2.7 -3.2 -3.7 -4.2];

knots=[0 0 0 0 1 2 3 4 5 6 6 6 6];

x0=ctrlpoints(1,:);

y0=ctrlpoints(2,:);

plot(x0,y0,'ro');%画所有控制点

hold on;

sp = spmak(knots,ctrlpoints);%生成B样条函数

fnplt(sp,[knots(1),knots(13)]);%根据所有节点,画样条曲线图

%fnplt(sp,'b*');

%hold on;

dt=knots(1):1:knots(13);

p = fnval(sp,dt);%计算在给定点处的样条函数值

plot(p(1,:),p(2,:),'*g');

dp1 = fnder(sp);%求样条函数的微分(即求导数)

dp = fnval(dp1,dt);

len = size(dt,2);

for i = 1:len

dir = dp(:,i);

scale = 1/sqrt(dir(1)^2+dir(2)^2);

dir = dir*scale;

plot([p(1,i),p(1,i)+dir(2)],[p(2,i),p(2,i)-dir(1)],'r');

end

axis equal

------------------------------------------------------------------

另外:

Matlab 样条工具箱(Spline ToolBox)

Matlab样条工具箱中的函数提供了样条的建立,操作,绘制等功能;

一. 样条函数的建立

第一步是建立一个样条函数,曲线或者曲面。这里的样条函数,根据前缀,分为4类:

cs* 三次样条

pp* 分段多项式样条,系数为t^n的系数

sp* B样条, 系数为基函数B_n^i(t)的系数

rp* 有理B样条

二. 样条操作

样条操作包括:函数操作:求值,算术运算,求导求积分等等

节点操作:主要是节点重数的调节,设定,修改等等

三. 简单示例

% step1: load ctrlpoints and knots

load data_example

% step 2: create the spline

sp = spmak(knots,ctrlpoints');

fnplt(sp,[knots(5),knots(42)]);

% step 3: get points on the curve

dt = knots(5):3:knots(42);

p = fnval(sp,dt);

plot(p(1,:),p(2,:),'.g')

% step 4: get dir draw normals

dp1 = fnder(sp);

dp = fnval(dp1,dt);

len = size(dt,2);

for i = 1:len

dir = dp(:,i);

scale = 1/sqrt(dir(1)^2+dir(2)^2);

dir = dir*scale;

plot([p(1,i),p(1,i)+dir(2)],[p(2,i),p(2,i)-dir(1)],'r');

end

附:样条工具箱函数

1. 三次样条函数

csapi 插值生成三次样条函数

csape 生成给定约束条件下的三次样条函数

csaps 平滑生成三次样条函数

cscvn 生成一条内插参数的三次样条曲线

getcurve 动态生成三次样条曲线

2. 分段多项式样条函数

ppmak 生成分段多项式样条函数

ppual 计算在给定点处的分段多项式样条函数值

3. B样条函数

spmak 生成B样条函数

spcrv 生成均匀划分的B样条函数

spapi 插值生成B样条函数

spap2 用最小二乘法拟合生成B样条函数

spaps 对生成的B样条曲线进行光滑处理

spcol 生成B样条函数的配置矩阵

4. 有理样条函数

rpmak 生成有理样条

matlab3维b样条曲线_MATLAB-3次B样条相关推荐

  1. autoCAD 编辑命名和二维对象

    要修改现有的对象,可以使用与该对象关联的方法和特性.如果修改图形对象的可见特性,请使用 Regen 方法来重画屏幕上的对象.Regen 方法是 Editor 对象的成员. 使用命名对象 删除对象 复制 ...

  2. B-Spline样条曲线及其性质

    目录 B-Spline 学习笔记(MOOC) [1] B样条产生的背景 1. Bezier曲线的不足 2. 克服不足的方法 3. 如何进行分段? [2] B样条的递推定义 1. B-Spline与Be ...

  3. scipy.signal信号处理的库(笔记06)

    信号处理(scipy.signal) 网址:https://docs.scipy.org/doc/scipy/reference/signal.html#scipy.signal 卷积 convolv ...

  4. 自由曲线以及圆锥曲线

    曲线 光滑曲线 定义 当曲线上的每一点处都有切线,并且切线随切点的移动而连续转动,这样的曲线称为光滑曲线. 充分条件 设平面曲线 C C C由参数方程 x = x ( t ) , y = y ( t ...

  5. Autocad VBA初级教程

    转载自CAD世界论坛普天同庆老师的作品.深表感谢!! Autocad VBA初级教程(第一课:入门) 1.为什么要写这个教程 市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂.其实我转 ...

  6. 曲线数学NURBS之bezier曲线

    最近新研究topic是NURBS,NURBS(Non Uniform Rational B-spline)即非均匀有理B样条曲线.往往提到B样条.以及NURBS就会提到bezier曲线,他们之间的关系 ...

  7. FusionCharts参数的详细说明和功能特性

    功能特性animation                    是否动画显示数据,默认为1(True) showNames                    是否显示横向坐标轴(x轴)标签名称 ...

  8. cad2017单段线_AutoCAD2017命令总结

    AutoCAD2017 命令总结 直线 :L+ 空格 画直线时点三点: C+ 空格键可以使三条线形成闭合状态 画圆: C+ 空格 ESC 取消一切命令 单击右键可以回到上一步命令(控制在 250 毫秒 ...

  9. 建模新手使用Maya的xGen功能后,角色毛发顺滑堪比使用海飞丝!

    这篇教程是用Maya的xGen功能来创建角色毛发效果的,我们先从眉毛开始,因为xGen的数据是需要储存到工程目录里的,所以必须要先设置好工程. 选择要创建的毛发物体,并创建一个新的xGen Descr ...

  10. MongoDB学习指导

    原文地址:http://blog.csdn.net/jakenson/article/details/7060431 MongoDB的内部构造<MongoDB The Definitive Gu ...

最新文章

  1. Linux下VS Code中C/C++开发环境的includePath设置
  2. php+弱数据类型,PHP的弱数据类型
  3. C# Web实时消息后台服务器推送技术---GoEasy
  4. rc mysql common_RR与RC隔离级别下MySQL不同的加锁解锁方式
  5. Servlet Session 跟踪
  6. c++ map用法_5分钟掌握Python | Map、Reduce和Filter如何运用?
  7. IntelliJ IDEA恢复安装时的初始状态
  8. 菩提心的修法-四无量心的具体修法
  9. tftp命令文件传输
  10. 内网环境下如何配置CentOS网络源(阿里云)----nginx代理实现
  11. 编写README文档(Markdown)
  12. 微信小游戏世界排行榜的绘制
  13. canvas绘图详解-06-绘制一个五角星-常用绘图原理
  14. 冲突处理方法----分离链接法
  15. 剑灵盛世服务器位置,剑灵盛世再临活动网址 剑灵周年回归礼包领取地址
  16. Deepin Linux 下 OSG 安装
  17. 黑马全套Java教程(八):集合进阶
  18. Linux 内核揭密
  19. luogu P1365 WJMZBMR打osu! / Easy(期望DP)
  20. ubuntu 上airodump-ng显示无线信号强度

热门文章

  1. 如何拼局域网所有ip_如何ping局域网内所有IP
  2. html中js怎么实现页面跳转页面,JavaScript实现页面跳转的几种常用方式
  3. 对比解析开源云平台:Eucalyptus VS OpenStack
  4. 3.1 数值分析: 迭代法的基本思想
  5. 手机12306买卧铺下铺技巧_手机12306买卧铺下铺技巧
  6. 伺服驱动器cn1引脚定义_关于三菱驱动器CN1端口的接线-专业自动化论坛-中国工控网论坛...
  7. 女士品茶 - 简单摘录
  8. 苹果cms去掉html,苹果cmsV10 隐藏显示视频设置教程
  9. c++编游戏-扫雷-c++游戏将彩色化-windows7自带扫雷游戏休闲娱乐
  10. 写给初学者:电气制图规范和图纸识读方法