matlab贝塞尔曲线,matlab实现贝塞尔曲线绘图pdf查看贝塞尔曲线绘图⽅法:
%Program 3.7 Freehand Draw Program Using Bezier Splines
%Click in Matlab figure window to locate first point, and click
% three more times to specify 2 control points and the next
% spline point. Continue with groups of 3 points to add more
% to the curve. Press return to terminate program.
%% This fuction is different from the text book written by the editor of the book.
%% Apart from the original functions, Dr. Wang has added its own codes to the function
%% in order to 1) move the entire graph to positive; 2)
function modifiedbezierdraw
clear all;
close all
clc
plot([0 2],[1,1],'k',[1 1],[0 2],'k');hold on %% Modified to move the entire graph to positive.
%imshow('1588.jpg');hold on
t=0:.02:1;
xlist=[]; ylist=[]; %% Used to store the coordinate list.
[x,y]=ginput(1); % get one mouse click
xlist(1)=x; ylist(1)=y; %% Starting coordinate
while(0 == 0)
[xnew,ynew] = ginput(3); % get three mouse clicks
if length(xnew) < 3
break % if return pressed, terminate
end
xlist(length(xlist)+1:length(xlist)+3)=xnew; ylist(length(ylist)+1:length(ylist)+3)=ynew; %% Store the current three coordinates
x=[x;xnew];y=[y;ynew]; % plot spline points and control pts
plot([x(1) x(2)],[y(1) y(2)],'r:',x(2),y(2),'rs');
plot([x(3) x(4)],[y(3) y(4)],'r:',x(3),y(3),'rs');
plot(x(1),y(1),'bo',x(4),y(4),'bo');
bx=3*(x(2)-x(1)); by=3*(y(2)-y(1)); % spline equations ...
cx=3*(x(3)-x(2))-bx;cy=3*(y(3)-y(2))-by;
dx=x(4)-x(1)-bx-cx;dy=y(4)-y(1)-by-cy;
xp=x(1)+t.*(bx+t.*(cx+t*dx)); % Horner's method
yp=y(1)+t.*(by+t.*(cy+t*dy));
plot(xp,yp) % plot spline curve
x=x(4);y=y(4); % promote last to first and repeat
end
hold off
%% The remaining codes are used to store the coordinates
%% and write them in the format of .txt which can be directly used in PDF.
save('xylist.mat','xlist','ylist');
xlist=xlist*300;
ylist=ylist*300;
fid=fopen('','w');
for i=0:(length(xlist)-1)/3-1
fprintf(fid,'%d %d %d %d %d %d %d %d c\n',fix(xlist(i*3+1)), fix(ylist(i*3+1)), fix(xlist(i*3+2)), fix(ylist(i*3+2)),
fix(xlist(i*3+3)), fix(ylist(i*3+3)), fix(xlist(i*3+4)), fix(ylist(i*3+4)));
end
fclose(fid);
pdf使⽤1.7⽼版本的定义:
注意stream区间,第⼀⾏m为起点,即第⼀⾏c的⾸两个整数。使⽤程序会得到⼀份txt⽂件。复制并替换带c的⾏数即可。末尾S需保留。%PDF-1.7
1 0 obj
<<
/Length 2 0 R
>>
stream
151 421 m
151 421 150 411 169 406 179 406 c
179 406 195 406 261 404 396 409 c
396 409 369 378 343 365 183 323 c
183 323 206 306 328 321 373 327 c
373 327 355 285 219 264 134 241 c
134 241 180 227 349 228 408 228 c
408 228 434 214 429 109 420 95 c
420 95 401 99 400 111 398 125 c
398 125 378 178 299 465 284 493 c 284 493 284 430 282 149 279 102 c S
endstream
endobj
2 0 obj
1000
endobj
4 0 obj
<<
/Type /Page
/Parent 5 0 R
/Contents 1 0 R
>>
vim编辑器下载与安装endobj
5 0 obj
<<
/Kids [4 0 R]
/Count 1
/Type /Pages
/MediaBox [0 0 612 792]
>>
endobj
3 0 obj
<<
/Pages 5 0 R
/Type /Catalog
>>
endobj
xref
0 6
0000000000 65535 f
0000000100 00000 n
0000000200 00000 n
0000000500 00000 n
0000000300 00000 n
0000000400 00000 n
trailer
<<
/Size 6
/Root 3 0 R
>>
startxref
1000
%%EOF
matlab练习程序(贝塞尔曲线)
下⾯三个公式分别是⼀次.⼆次和三次贝塞尔曲线公式: 通⽤的贝塞尔曲线公式如下: 可以看出,系数是由⼀个杨辉三⾓组成的. 这⾥的⼀次或者⼆次三次由控制点个数来决定,次数等于控制点个数-1. 实现的效果如 ...
深度掌握SVG路径path的贝塞尔曲线指令
⼀.数字.公式.函数.变量,哦,NO! ⼜⼜⼀次说起贝塞尔曲线(英语:Bézier curve,详尽中⽂释义戳这⾥),我最近在尝试实现复杂的⽮量图形动画,发现对贝塞尔曲线的理解馒头那么厚,是完 ...
canvas贝塞尔曲线
贝塞尔曲线 Bézier curve(贝塞尔曲线)是应⽤于⼆维图形应⽤程序的数学曲线. 曲线定义:起始点.终⽌点.控制点.通过调整控制点,贝塞尔曲线的形状会发⽣变化. 1962年,法国数学家Pierr ...
贝塞尔曲线(UIBezierPath)属性、⽅法汇总
UIBezierPath主要⽤来绘制⽮量图形,它是基于Core Graphics对CGPathRef数据类型和path绘图属性的⼀个封装,所以是需要图形上下⽂的(CGContextRef),所以⼀般U ...
iOS开发之画图板&lpar;贝塞尔曲线)
贝塞尔曲线,听着挺⽜⽓⼀词,不过下⾯我们在做画图板的时候就⽤到贝塞尔绘直线,没⽤到绘制曲线的功能.如果会点PS的⼩伙伴会对贝塞尔曲线有更直观的理解.这篇博⽂的重点不在于如何⽤使⽤贝塞尔曲线,⽽是利⽤贝 ...
⽤html5的canvas画布绘制贝塞尔曲线
iOS开发 贝塞尔曲线
iOS开发 贝塞尔曲线UIBezierPath
Android中贝塞尔曲线的绘制⽅法
贝塞尔曲线,很多⼈可能不太了解,什么叫做贝塞尔曲线呢?这⾥先做⼀下简单介绍:贝塞尔曲线也可以叫做贝济埃曲线或者贝兹曲线,它由线段与节点组成,节点是可拖动的⽀点,线段像可伸缩的⽪筋.⼀般的⽮量图形软件常 ...
随机推荐
调试WEB APP多设备浏览器
⽅法:adobe shadow \ opera远程调试\ weinre adobe shadow: 我们经常使⽤Firefox的firebug或者Chrome的开发⼈员⼯具进⾏Web 调试页⾯,Jav ...
Codeforces Round #190 DIV.2 A. Ciel and Dancing
#include #include #include using namespace std; int m ...
Cocos2d-JS cc.DrawNode⽤法
app.js var HelloWorldLayer = d({ sprite:null, ctor:function () { / ...
ruby on rails 实战(⼆)
1,修改routes⽂件,让所有的action都可以使⽤get或者post⽅式访问 match "/:controller/:action" => "control ...
【转】win7+ubuntu双系统安装⽅法--不错
⼜⼀次认识HTML,CSS,Javascript 之node-webkit 初探
今天我们来系统的.全⾯的 了解⼀下前端的⼀些技术,将有助于我们写出 更优秀的 产品 出来. 什么是H
TML? HTML 是⽤来描写叙述⽹页的⼀种语⾔. HTML 包括⼀些根节点.⼦节点,⽂本节点.属性 ...
看到个有趣的⽅法批量下载rtf模板
⼀般想要批量下载rtf模板我们都是⽤fndload来实现或者 perl download.pl来实现,今天看到⼀个⽐较有趣的⽅法 Hi, Blob column
'template file data ...
Linux系统下Mysql安装与配置
⼀,使⽤系统 Centos7: 在CentOS中默认安装有MariaDB,这个是MySQL的分⽀,但为了需要,还是要在系统中安装MySQL,⽽且安装完成之后可以直接覆盖掉MariaDB. ⼆,下载安装 ...
table⾃适应⼤⼩,以及内容换⾏
在table的样式中加⼊以下两个样式: table-layout: fixed; word-wrap:break-word;
vim编辑器第⼆天
编辑模式的进⼊: i :在光标所在的字符前插⼊ a :在光标所在的字符后插⼊ o :在光标所在的⾏的下
⾯⼀⾏插⼊ I : 在光标所在的⾏的⾏⾸插⼊,如果⾏⾸有空格则在空格后⾯开始插⼊ A :在光标 ...
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论