没有合适的资源?快使用搜索试试~ 我知道了~
首页MetaPost超简明教程(中文).pdf
资源详情
资源评论
资源推荐
1ÊÜ© 第12页,共22页
第九部分
METAPOST¦^`²
1 简介
METAPOST是一个基本的作图工具,适合做出精确的图形,输出为ps格式的矢量图形,可供T
E
X中的
插图使用。使用METAPOST的基本步骤如下:
1. 编辑METAPOST源文件。本质就是一个文本编辑的过程。
2. 把源文件提交给METAPOST的处理程序mpost.exe编译。
3. 将编译产生的输出文件在T
E
X文档中使用,并编译,图形会在dvi文件转换为ps或者pdf时出现。
更详细的说明请参考 [1]。以下是一个简单的METAPOST程序,你可以看看它的结果:
beginfig(0)
path pp ;
u := 2cm ;
Angle := 10 ;
n = 360 / Angle ;
pp := (-u ,-u )--(-u ,u )--(u ,u )--(u ,-u )-- cycle;
draw pp ;
for i = 1 upto n :
pp := pp scaled (1/(sind(Angle)+cosd(Angle))) rotated Angle ;
draw pp ;
endfor;
图 1: 程序输出样例
endfig ;
end
2 基本语法元素
在METAPOST里面共有以下几种元素,附有说明:
numeric 与强语言不同,这里只有一种数值形式,最大不能超过4096。
pair 表示平面上面的点。使用(x,y)来定义或者直接使用。
color 表示一种颜色,常用(r,g,b)来表示一种颜色。
path 表示一条路经,可以使用点加连接方式来表示,如:(a,b)−−(c,d)、(a,b )..( c,d)等等。
picture 表示一个图形集合,后面将介绍如何使用它做一些变换。
transform 表示一种变换方式,可以作用在pair、path、picture上面,获取变换后的图形。
string 字符串,常使用”string example”来表示。
boolean 一个bool值,和if 等一起使用。
pen 表示画图时笔的形状。
其中可以认为,pair、numeric、color这三种是为了表达某一种状态,或者位置的值,可以进行通常以
以下的运算。而path和picture则稍复杂,可以认为是图形的元素集合,transform则为对这些的变换方式
(本质上由几个numeric组成)。象pen更像是一个path。
Made by demonstrate
1ÊÜ© 第三节 pair与path 第13页,共22页
3 pair与path
对于一个numeric变量,可以进行常规的数值运算,还有几个辅助的函数,如三角函数sind、cosd等。
而对于pair和color可以进行线性方程组运算。最简单的是比如求交点:
beginfig(0)
u := 2cm ;
pair a ;
draw ( 0u , 0u ) -- ( u , u ) ;
draw ( u , 0u ) -- ( 0u , 1u ) ;
a = whatever[( 0u , 0u ) , ( u , u )] ;
a = whatever[( u , 0u ) , ( 0u , 1u )] ;
dotlabel.bot ( "a" , a ) ;
a
图 2: 分点示意
endfig ;
其中的whatever表示一个无名的变量,这样我们知道a是一个两直线的公共点。而结构[p1,p2]可以
应用到color上面,表示分点的意思,而前面的数字即分比。
多个点之间采用不同的连接方式,就可以得到path,基本连接方式为:
path pp ;
pp := point1−−point2−−...−−pointn[−−cycle]
其中−−可以换为 .. 。−−表示用直线连接,而 .. 表示用尽量光滑的曲线连接(一般使用B´ezier曲线)。最
后可选的cycle表示需要闭合。由于使用了B´ezier曲线,所以可以使用控制点来画,此时的点的表达式换
为control(x1,y1) and (x2,y2)或者control(x,y)。
点还可以加上方向,方式为p oint{dir},dir可以为left、right、up、down。
还可以使用下面的语法强制该点的斜率point{dir a},a是角度值。
另外,能为曲线增加紧张程度的描述,即使用point1.. tension a..point2,a的大小描述了紧张程度,
a >
3
4
。或者p oint1 .. tension a and b..point2。
最后,起点和终点可以使用curl来表示卷曲程度,如point1{curl c}。
另外,使用METAPOST自己定义的一些宏也能够产生相应的路径,如:fullcircle、halfcircle。
4 picture与transform
所谓的picture是一个所有图形对象的集合,有一个标准的picture是当前使用于输出的picture,也
就是currentpicture,可以通过对它的操作改变当前图片,如:
currentpicture := nullpicture ;
会把当前图片清除。
我们可以对图形作出很多变换,当然,这些变换也适用于pair和path,下面列出一些常用的变换:
scaled 按比例放大,后接放缩因子。
xscaled 按比例放大,后接放缩因子。
yscaled 按比例放大,后接放缩因子。
rotated 旋转,后接旋转角度。
shifted 平移,后接平移点的位置。
rotatedaround 绕指定点旋转。
利用好picture可以方便的进行迭代,下面的代码将会生成Sierpinski垫片,这是一个著名的分形例
子:
Made by demonstrate
1ÊÜ© 第四节 picture与transform 第14页,共22页
beginfig(3);
IteralTime := 7 ;
u := 5cm ;
picture picTemp ;
path triangle ;
triangle := ( 1u , 0 u ) −− ( 0u , u∗sqrt( 3 ) ) −− ( −1u , 0u ) −− cycle ;
filldraw triangle ;
picTemp := currentpicture scaled 0.5 ;
for i := 1 upto IteralTime :
currentpicture := nullpicture ;
draw picTemp shifted ( −0.5u , 0u ) ;
draw picTemp shifted ( 0.5u , 0u ) ;
draw picTemp shifted ( 0u , 0.5 ∗ u ∗ sqrt(3) ) ;
picTemp := currentpicture scaled 0.5 ;
endfor;
endfig;
值得注意的是,有时候我们需要在METAPOST 图片中插入T
E
X字符,这实际上也是一种picture。如
下面代码将返回一个picture。
picture pp ;
pp := thelabel( btex \TeX’s Output etex , ( 0 , 0 ) ) ;
其中的代码块btex \TeX’s Output etex就是一种picture。
我们通常更愿意使用L
A
T
E
X插入字符,甚至中文字符,下面的例子将为我们说明这一点:
verbatimtex
%&latex
\documentclass{article}
\usepackage{CJK}
\begin{CJK*}{GBK}{song}
\begin{document}
etex
%
图 3: L
A
T
E
X插
入中文示例
beginfig(2)
draw fullcircle scaled 2cm ;
label( btex 圆心 etex , ( 0, 0 ) ) ;
endfig ;
verbatimtex
\end{CJK*}
\end{document}
etex
注意在beginfig与endfig前后的那两段,使表示使用L
A
T
E
X做预处理,预处理之后,就会形成更低层
的ps代码供后面的METAPOST使用。
Made by demonstrate
剩余10页未读,继续阅读
songjinghe
- 粉丝: 2
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 数据结构1800题含完整答案详解.doc
- 医疗企业薪酬系统设计与管理方案.pptx
- 界面与表面技术界面理论与表面技术要点PPT学习教案.pptx
- Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf
- 网页浏览器的开发 (2).pdf
- 路由器原理与设计讲稿6-交换网络.pptx
- 火电厂锅炉过热汽温控制系统设计.doc
- 企业识别CIS系统手册[收集].pdf
- 物业管理基础知识.pptx
- 第4章财务预测.pptx
- 《集成电路工艺设计及器件特性分析》——实验教学计算机仿真系.pptx
- 局域网内共享文件提示没有访问权限的问题借鉴.pdf
- 第5章网络营销策略.pptx
- 固井质量测井原理PPT教案.pptx
- 毕业实习总结6篇.doc
- UGNX建模基础篇草图模块PPT学习教案.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论13