|
简要介绍gnuplot绘函数图
计算机图形学有个小作业,需要画一个函数的图像,我瞬间想到了几种方法:
matlab
maple
mathmatica
gnuplot
metapost
octave
前三个大软件,动用起来有用牛刀杀鸡之陷,再者说用的都是D版,不大光明磊落。用metapost语言也是一个选择,但是不够简单灵活,用octave当然也行,虽说是自由软件,但是同样是把牛刀,所以就决定祭出GNU画图必备工具gnuplot。
首先是安装,我自己用的ubuntu,安装再简单不过了
[code:1]
sudo apt-get install gnuplot gnuplot-doc
[/code:1]
作业很简单,画这样一个函数: r(t)=(t^2-2t+1,t^3-2t^2+t)和y(t)=(2t+1,t^3),t是从0到1。
这样简单的函数作图是gnuplot最擅长不过的了。
写上这样一个plot.dem文件先:
[code:1]
set parametric #参数化作图
set dummy t #设置参数作图的自由变量(独立变量)
set autoscale #自动缩放
set samples 160 #采样率 默认为100
set title "" #标题设置
set key box
set key below #标题等信息的位置
set trange [0.00001:1] #t的范围
plot t*t-2*t+1,t*t*t-2*t*t+t title "(t^2-2t+1,t^3-2t^2+t)" #就是这个画图:)
pause -1 "Hit return to continue" #防止窗口一闪就没了
plot t*t+1,t*t*t title "(2t+1,t^3+4t+1)" #再画一张!
pause -1 "Hit return to continue" #再停
plot t*t+1,t*t*t, t*t-2*t+1,t*t*t-2*t*t+t #again
pause -1 "Hit return to continue" #pause again
[/code:1]
然后在终端里运行:
[code:1]
gnuplot plot.dem
[/code:1]
三张漂亮的图片就出来了,方便快捷吧!
等等,我们要提交作业,不能只打印到屏幕上,要有图像文件啊,什么?截图阿,太土了,更重要的是,太小看我们的gnuplot了啊。千万不能那样干:)
我们在plot之前加上一句这个
[code:1]
set terminal postscript eps color lw 1 “Helvetica” 20
[/code:1]
如果想让线条粗些,可以修改 lw 后面的 1,不信改成100你试试:)
然后再加上一句这个来设置输出文件:
[code:1]
set out ‘a.eps’
[/code:1]
现在文件是这个样子:
[code:1]
set parametric #参数化作图
set dummy t #设置参数作图的自由变量(独立变量)
set autoscale #自动缩放
set samples 160 #采样率 默认为100
set title "" #标题设置
set key box
set key below #标题等信息的位置
set trange [0.00001:1] #t的范围
set terminal postscript eps color lw 1 "Helvetica" 20
set out 'a.eps'
plot t*t-2*t+1,t*t*t-2*t*t+t title "(t^2-2t+1,t^3-2t^2+t)" #就是这个画图:)
pause -1 "Hit return to continue" #防止窗口一闪就没了
set out 'b.eps'
plot t*t+1,t*t*t title "(2t+1,t^3+4t+1)" #再画一张!
pause -1 "Hit return to continue" #再停
set out 'c.eps'
set title ""
plot t*t+1,t*t*t, t*t-2*t+1,t*t*t-2*t*t+t #again
pause -1 "Hit return to continue" #pause again
[/code:1]
运行后就会生成eps图片了,矢量图片,可以任意缩放哦:)没用过eps?就听说过gif,jpg啥的?呵呵,没关系,不想用这样的矢量图也可以:
[code:1]
set terminal jpeg (png ) 等等都可以
[/code:1]
大家可以看看gnuplot4.0新支持的文件格式,和gnuplot4.2 新支持的文件格式,有很多可供选择:) |
|