matlab练习程序(贝塞尔曲线)
下面三个公式分别是一次、二次和三次贝塞尔曲线公式:



通用的贝塞尔曲线公式如下:

可以看出,系数是由一个杨辉三角组成的。
这里的一次或者二次三次由控制点个数来决定,次数等于控制点个数-1。
实现的效果如下:


代码如下:
clear all;
close all;
clc; p=ginput();
plot(p(:,),p(:,),'b-o'); N=length(p); %确定贝塞尔阶数(控制点个数-1)
t=zeros(N,N); M=; %确定贝塞尔曲线点的个数 %计算杨辉三角
for i=:N
t(i,) = ;
t(i,i) = ;
end
if N>=
for i=:N
for j=:i-
t(i,j) = t(i-,j-)+t(i-,j);
end
end
end %根据公式计算贝塞尔曲线
re=zeros(M,);
for i=:M
step = i/M;
for k=:N-
re(i,) = re(i,) + (-step)^(N-k-)*p(k+,)*step^k*t(N,k+); %t替换为nchoosek(N-,k),不用计算杨辉三角了;
re(i,) = re(i,) + (-step)^(N-k-)*p(k+,)*step^k*t(N,k+); %t替换为nchoosek(N-,k),不用计算杨辉三角了;
end
end hold on;
plot(re(:,),re(:,),'r');
注意,运行时要先点几下输入控制点,然后按回车键来进行确认。
参考:
https://www.jianshu.com/p/0c9b4b681724
https://baike.baidu.com/item/%E8%B4%9D%E5%A1%9E%E5%B0%94%E6%9B%B2%E7%BA%BF/1091769?fr=aladdin
matlab练习程序(贝塞尔曲线)的更多相关文章
- 微信小程序 - 贝塞尔曲线(购物车效果)
转载来源于:https://segmentfault.com/a/1190000011710786 简化了一下,发出来吧 示例源码:点击下载
- matlab实现贝塞尔曲线绘图pdf查看
贝塞尔曲线绘图方法: %Program 3.7 Freehand Draw Program Using Bezier Splines %Click in Matlab figure window to ...
- canvas贝塞尔曲线
贝塞尔曲线 Bézier curve(贝塞尔曲线)是应用于二维图形应用程序的数学曲线. 曲线定义:起始点.终止点.控制点.通过调整控制点,贝塞尔曲线的形状会发生变化. 1962年,法国数学家Pierr ...
- 深度掌握SVG路径path的贝塞尔曲线指令
一.数字.公式.函数.变量,哦,NO! 又又一次说起贝塞尔曲线(英语:Bézier curve,维基百科详尽中文释义戳这里),我最近在尝试实现复杂的矢量图形动画,发现对贝塞尔曲线的理解馒头那么厚,是完 ...
- iOS开发之画图板(贝塞尔曲线)
贝塞尔曲线,听着挺牛气一词,不过下面我们在做画图板的时候就用到贝塞尔绘直线,没用到绘制曲线的功能.如果会点PS的小伙伴会对贝塞尔曲线有更直观的理解.这篇博文的重点不在于如何用使用贝塞尔曲线,而是利用贝 ...
- NGUI研究院之在Unity中使用贝塞尔曲线(六)[转]
鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...
- Unity3d游戏中自定义贝塞尔曲线编辑器[转]
关于贝塞尔曲线曲线我们再前面的文章提到过<Unity 教程之-在Unity3d中使用贝塞尔曲线>,那么本篇文章我们来深入学习下,并自定义实现贝塞尔曲线编辑器,贝塞尔曲线是最基本的曲线,一般 ...
- 在Unity中使用贝塞尔曲线(转)
鼎鼎大名的贝塞尔曲线相信大家都耳熟能详.这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么MOMO迅速的研究了一下成果就分享给大家了哦.贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是 ...
- 关于photoshop钢笔工具中各点对应到“贝塞尔曲线”中的含义(cocos2d-x与iOS)
1.程序中贝塞尔曲线的简单介绍,只介绍曲线部分.程序中的贝塞尔曲线需要四个点:起始点(startPoint) ,控制点1(controlPoint1),控制点2(controlPoint2),结束点( ...
随机推荐
- SSM框架(Spring + Spring MVC + Mybatis)搭建
Spring是一个轻量级的框架,用到了注解和自动装配,就是IOC和AOP: SpringMVC是Spring实现的一个Web层,相当于Struts的框架: Mybatis是 一个持久层的框架,在使用上 ...
- 从游击队到正规军(二):马蜂窝旅游网的IM客户端架构演进和实践总结
一.引言 移动互联网技术改变了旅游的世界,这个领域过去沉重的信息分销成本被大大降低.用户与服务供应商之间.用户与用户之间的沟通路径逐渐打通,沟通的场景也在不断扩展.这促使所有的移动应用开发者都要从用户 ...
- Apollo的基本概念和集成实战
基本概念 使用场景 是一个分布式的配置中心.适用于微服务: 核心功能 集中管理不同环境,不同集群的配置: 配置修改后可以实时推送到应用端: 具备规范的权限,流程治理特性: 开发技术 服务端使用spri ...
- PHP fastcgi_finish_request 方法
本文介绍,PHP运行在FastCGI模式时,FPM提供的方法:fastcgi_finish_request. 在说这个方法之前,我们先了解PHP有哪些常用的运行模式? PHP运行模式 CGI 通用网关 ...
- GO 键盘输入和打印输出
键盘输入和打印输出 一.打印输出 1.1 fmt包 fmt包实现了类似C语言printf和scanf的格式化I/O.格式化verb('verb')源自C语言但更简单. 详见官网fmt的API:http ...
- java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap报错解决
在使用 commons-beanutils-1.9.2.jarcommons-logging-1.1.1.jar 的时候报错 java.lang.NoClassDefFoundError: org/a ...
- SQL Server 数据库备份语句
); --文件名 DECLARE @date DATETIME; --日期 ); --文件存放路径 SELECT @date = GETDATE(); --获取当前时间 --根据当前时间自动生成文件名 ...
- Docker配置yapi接口
一.安装Docker 第一步:yum 包更新到最新 sudo yum update 第二步:安装需要的软件包 yum-util 提供yum-config-manager功能,另外两个是devicema ...
- 机器学习实战:基于Scikit-Learn和TensorFlow 读书笔记 第6章 决策树
数据挖掘作业,要实现决策树,现记录学习过程 win10系统,Python 3.7.0 构建一个决策树,在鸢尾花数据集上训练一个DecisionTreeClassifier: from sklearn. ...
- HTML常用标签三
表格标签 表格的作用 表格主要用于显示.展示数据,因为他们可以让数据显示的非常规整,可读性非常好,特别是后台展示数据的时候,能够熟练运用表格就先的很重要,一个清爽简约的表格能够把繁杂的数据表现的很有条 ...