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),结束点( ...
随机推荐
- shell 下
一句话来概括shell shell是一个基于Linux内核和应用程序之间的一个解释器 Shell解释器 /bin/sh /bin/bash 目前多用的是bash /sbin/ ...
- Codechef October Challenge 2019 Division 1
Preface 这次CC难度较上两场升高了许多,后面两题都只能借着曲明姐姐和jz姐姐的仙气来做 值得一提的是原来的F大概需要大力分类讨论,结果我写了一大半题目就因为原题被ban了233 最后勉强涨了近 ...
- 关于linux的权限系统知识点(drwxr-xr-x)
在Linux系统中使用 ll 命令可以看到文件的权限信息,如图: 接下来主要解释一下这些权限的含义: 可以看到总的十个字符: 1.第一个字符表示文件类型: d 表示是目录 - 表示是文件 l 表示是链 ...
- SpringMVC拦截器和数据校验
1.什么是拦截器 Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权限验证.记录请求 ...
- 通过组件实现相同group下字符串拼接
实现效果 组件处理流程如下: 1 使用Sorter组件对ColA进行排序 2 使用expression组件进行如下配置 3 使用aggregate组件进行如下配置 ColA ...
- HTTP常见的几种认证机制
几种常用的认证机制 ===================转自https://www.cnblogs.com/xiekeli/红心李的文章====================== 我是一个测试人员 ...
- FCN用卷积层代替FC层原因(转)
原博客连接 : https://www.cnblogs.com/byteHuang/p/6959714.html CNN对于常见的分类任务,基本是一个鲁棒且有效的方法.例如,做物体分类的话,入门级别的 ...
- oracle自定义函数:将使用点分隔符的编码转成层级码格式的编码
维护一个旧的系统,表设计中只有编码,而没有其他排序相关的字段,然后根据编码排序出现了顺序错乱的问题. 详细地说,其编码设计是使用[.]分隔符的编码,比如1.1.1.1.1.1.1.1.1.2这样的格式 ...
- 两种查看EFCore生成Sql语句的方法
一.利用反射生成查询语句 该方法转载自:https://jhrs.com/2019/28488.html (略有修改) using Microsoft.EntityFrameworkCore.Quer ...
- Java开发桌面程序学习(二)————fxml布局与控件学习
JavaFx项目 新建完项目,我们的项目有三个文件 Main.java 程序入口类,载入界面并显示 Controller.java 事件处理,与fxml绑定 Sample.fxml 界面 sample ...