注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

wangyufeng的博客

祝愿BB 健康开心快乐每一天

 
 
 

日志

 
 

使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转)  

2010-11-06 10:06:15|  分类: R、SVG&GNUPlot画 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
        常见的几类二次曲面.主要有:球面,椭球面,锥面,单/ 双叶双曲面,抛物面等.在Gnuplot中绘制曲面,大多数采用参数方程的形式,对应曲面的参数方程可以到Mathematica查询.
为了生成的方便,作者把曲面的绘制都写在一个脚本里.这个脚本本质上也就是一系列gnuplot命令的组合, 绘图时只需在linux终端下执行gnuplot filename即可.图形被设定为png格式输出,见这里.

使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客

使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 
使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 
使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 
使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 
使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 
使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 
使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 
使用Gnuplot绘制常见的二次曲面 (quadratic surface)(转) - 喜欢吃桃子 - wangyufeng的博客
 

绘图脚本如下所示:

set parametric                   #进入参数方程模式
set isosample 30,30 #设置平面上的网格密度
set hidden3d
set ticslevel 0.5 #设定Z轴起点为0.5
set xlabel "X" #设置x,y,z轴的标识
set ylabel "Y"
set zlabel "Z"
set key box #曲面说明加框,位置在右上角
set key top right
set terminal png #输出定向为png图片
set output "ellipsoid.png" #定义下面一个绘图动作(椭球面)的输出名称
set title "Ellipsoid" #图形顶端的标题
set view 86,284 #设定图形的观察角度
splot [0:2*pi] [0:2*pi] 4*cos(u)*cos(v),sin(u)*cos(v),sin(v) title "ellipsoid"
set output "hyb1.png"
set title "Hyperboloid of one sheet"
set view 65,184
splot 2*sqrt(1+u**2)*cos(v),sqrt(1+u**2)*sin(v),u title "hyperboloid of one sheet"
set output "hyb2.png"
set title "Hyperboloid of two sheets"
unset hidden3d
splot [-30:30] [0:2*pi] sinh(u)*cos(v),2*sinh(u)*sin(v),2*cosh(u)+5 title "sheet1",\
sinh(u)*cos(v),2*sinh(u)*sin(v),-2*cosh(u)-5 title "sheet2"
set hidden3d
set output "paraboloid.png"
set title "Paraboloid"
set view 72,62
splot [0:3] [0:2*pi] sqrt(u/3)*cos(v),sqrt(u/3)*sin(v),u title "paraboloid"
set output "cone.png"
set title "Cone"
splot [0:2] [0:2*pi] (2-u)*1*cos(v)/2,(2-u)*1*sin(v)/2,u-2 title "cone1",\
(2-u)*1*cos(v)/2,(2-u)*1*sin(v)/2,-u+2 title "cone2"
set output "cylinder.png"
set title "Cylinder"
set ticslevel 0.2
set view 70,70
splot [-1:2] [0:2*pi] 1*cos(v),1*sin(v),u title "cylinder"
set output "cylinder+sphere.png"
set title "Cylinder and Sphere"
set ticslevel 0
f(u)=2*u/(2*pi) #定义一个函数,达到使用不同尺度绘制两个曲面的目的
set view 58,303
set xrange [-3:3]
set yrange [-3:3]
set zrange [-2:2]
splot [u=0:2*pi] [v=0:2*pi] 1*cos(v)-1,1*sin(v),f(u) title "cylinder",\
2*cos(u)*sin(v),2*cos(u)*cos(v),2*sin(u) title "sphere"
set output "hyper-paraboloid.png"
set title "Hyperbolic Paraboloid"
unset parametric #退出参数方程模式
set view 77,312
set contour base #在XY平面上显示曲面轮廓(help set contour)
set xrange [-10:10]
set yrange [-10:10]
set zrange [-10:15]
splot x**2/8-y**2/18 title "hyper-para"
本文转自:http://my.opera.com/leeyee/blog/?id=495869
  评论这张
 
阅读(1504)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017