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('fontmat.txt','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

>>

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开发之画图板(贝塞尔曲线)

贝塞尔曲线,听着挺牛气一词,不过下面我们在做画图板的时候就用到贝塞尔绘直线,没用到绘制曲线的功能.如果会点PS的小伙伴会对贝塞尔曲线有更直观的理解.这篇博文的重点不在于如何用使用贝塞尔曲线,而是利用贝 ...

用html5的canvas画布绘制贝塞尔曲线

查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: /p>

iOS开发 贝塞尔曲线

iOS开发 贝塞尔曲线UIBezierPath - 陌云 时间 2014-03-14 11:04:00  博客园-所有随笔区 原文  http://www.cnblogs.com/moyunmo/p/ ...

iOS开发 贝塞尔曲线UIBezierPath

最近项目中需要用到用贝塞尔曲线去绘制路径 ,然后往路径里面填充图片,找到这篇文章挺好,记录下来 自己学习! 转至 http://blog.csdn.net/guo_hongjun1611/articl ...

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 = cc.Layer.extend({ sprite:null, ctor:function () { / ...

ruby on rails 实战(二)

1,修改routes文件,让所有的action都可以使用get或者post方式访问 match "/:controller/:action" => "control ...

【转】win7+ubuntu双系统安装方法--不错

原文网址:http://blog.csdn.net/lvanneo/article/details/16885121 前段时间又安装一下win7+ubuntu双系统,过段时间就会忘记,这次自己写下来, ...

又一次认识HTML,CSS,Javascript 之node-webkit 初探

今天我们来系统的.全面的 了解一下前端的一些技术,将有助于我们写出 更优秀的 产品 出来. 什么是HTML? 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 :在光标 ...

你可能感兴趣的:(matlab,贝塞尔曲线)