1、面向对象程序设计IDL,第三章 直接图形法,第三章 直接图形法,3.1 图形绘制 绘图基本参数设置,!p变量 图形显示窗口,Window过程 基本图形绘制,Plot过程 等值线图形绘制,Contour过程 3.2 图像显示 图像数据解读,Dist函数 打开jpg图像, 颜色表设置,Device过程,Loadct过程 显示图像,TV过程,3.1 图形绘制-绘图基本参数设置,绘图基本参数包括: 颜色:背景色background、绘图颜色color 字体:font (-1,0,1) 线型:linestyle (0-5,0为实线) 线的宽度:thick (默认的是1.0) 符号:PSYM (0-10)
2、 标题:title、subtitle 位置和区域:posotion、region 窗口组织:Multi: 总个数,列数,行数,z方向,行列优先 刻度线长度:ticklen (0-0.5),3.1 图形绘制-图形显示窗口,创建窗口,WINDOW , Window_Index , COLORS=value , /FREE , /PIXMAP , RETAIN=0 | 1 | 2 , TITLE=string , XPOS =value , YPOS=value , XSIZE=pixels , YSIZE=pixels 选择窗口,WSET , Window_Index 暴露窗口,WSHOW , W
3、indow_Index , Show 删除窗口,WDELETE , Window_Index , .,3.1 图形绘制-基本图形绘制,PLOT, X, Y , /ISOTROPIC , MAX_VALUE=value , MIN_VALUE=value , NSUM=value , /POLAR , THICK=value , /XLOG , /YLOG , /YNOZEROx,y表示数据,分别表示x轴,y轴 MAX_VALUE和MIN_VALUE表示最大值和最小值,大于最大值和小于最小值的值不再显示 NSUM表示一段数据的平均值 /POLAR表示极射线绘制 THICK表示线的厚度,点与点连线
4、 /XLOG /YLOG表示分别对x,y的数据取对数 /YNOZERO,将大于零的最小y值设置到坐标原点,3.1 图形绘制-基本图形绘制,Graphics Keywords:, BACKGROUND=color_index , CHARSIZE=value , CHARTHICK=integer , CLIP=X0, Y0, X1, Y1 , COLOR=value , /DATA | , /DEVICE | , /NORMAL , FONT=integer , LINESTYLE=0 | 1 | 2 | 3 | 4 | 5 , /NOCLIP , /NODATA , /NOERASE , P
5、OSITION=X0, Y0, X1, Y1 , PSYM=integer0 to 10 , SUBTITLE=string , SYMSIZE=value , /T3D , THICK=value , TICKLEN=value , TITLE=string 设置图形的各类关键字参数 BACKGROUND表示背景色,COLOR表示显示颜色 FONT表示字体, PSYM表示符号化,LINESTYLE表示线型 TITLE表示标题,SUBTITLE表示副标题,3.1 图形绘制-基本图形绘制, X | Y | ZCHARSIZE=value , X | Y | ZGRIDSTYLE=integer0
6、 to 5 , X | Y | ZMARGIN=left, right , X | Y | ZMINOR=integer , X | Y | ZRANGE=min, max , X | Y | ZSTYLE=value , X | Y | ZTHICK=value , X | Y | ZTICK_GET=variable , X | Y | ZTICKFORMAT=string , X | Y | ZTICKINTERVAL= value , X | Y | ZTICKLAYOUT=scalar , X | Y | ZTICKLEN=value , X | Y | ZTICKNAME=stri
7、ng_array , X | Y | ZTICKS=integer , X | Y | ZTICKUNITS=string , X | Y | ZTICKV=array , X | Y | ZTITLE=string , ZVALUE=value0 to 1,设置坐标轴的显示参数 比如X | Y | ZTITLE含义:XTITLE 、 YTITLE 、 ZTITLE,具体表示为x、y、z轴的标题 STYLE:表示坐标轴的风格 TICK:表示坐标轴的刻度线 CHAR:图表 CHARSIZE:控制图形和注记大小比例,1为正常,基本图形绘制-简单曲线,例题1:,例题2:,基本图形绘制-绘制极射图,P
8、lot,x,y,/POLAR /POLAR表示绘制极射图 X表示极坐标下的半径 Y表示极坐标下的角度 然后将其转换到笛卡尔坐标系下显示 线的长度表示半径,坐标系控制方向,基本图形绘制-符号化图形,注意:绘制图的图形是离散点图,如果要修改线型,需要通过linestyle,基本图形绘制-符号化图形,基本图形绘制-坐标轴风格,3.1 基本图形绘制-等值线图形绘制,CONTOUR, Z , X, Y , C_ANNOTATION=vector_of_strings , C_COLORS=vector , C_LABELS=vectoreach element 0 or 1 , /CELL_FILL |
9、 , /FILL , /FOLLOW , LEVELS=vector , NLEVELS=integer1 to 60,Z , X, Y表示要绘制的数据, NLEVELS=integer1 to 60表示控制等值线的级数FOLLOW:自动标注 LEVELS:显示具体数值的等高线 C_LABELS:标注是否显示 C_ANNOTATION标注名称CELL_FILL 和 FILL:填充模式 C_COLORS:填充颜色,3.1 基本图形绘制-等值线图形绘制,数据行代表x轴,列代表y轴,原点表示第一行第一列,数据独立与坐标轴数据 坐标轴看成一个二维空间,数据体现在等值线上,3.1 基本图形绘制-等值线图
10、形绘制,Nlevels:取值范围0-60,代表分级数。 Level:一个数组,取值为等值线的值 C_labels:一个数组,取值为0或1,表示对应level值的等高线标注是否显示 /follow:间隔方式自动标注等高线 C_annotation:一个数组,取值为字符串,标注为字符串 /C_FILL:线填充 /FILL:面填充,3.1 基本图形绘制-等值线图形绘制,举例分析: Dist函数:产生一种距离变换图 Rondomu/Rondomn函数:产生随机数 Rondomu产生0-1之间的均匀分布的随机数 Rondomn产生符合正态分布的随机数 Min_curve_surf函数:线平滑,3.1 基
11、本图形绘制-等值线图形绘制,3.1基本图形绘制-曲面绘制,Surface过程:绘制一个曲面 SURFACE, Z , X, Y , AX=degrees , AZ=degrees , BOTTOM=index , /HORIZONTAL , /LEGO , /LOWER_ONLY | , /UPPER_ONLY , MAX_VALUE=value , MIN_VALUE=value , /SAVE , SHADES=array , SKIRT=value , /XLOG , /YLOG , ZAXIS=1 | 2 | 3 | 4 , /ZLOG SURFACE, Z , X, Y,像使用con
12、tour一样使用surface,3.2 图像显示-图像数据解读,一个数值对应一个图像栅格,一个图像栅格对应一个像素,其值为该矩阵的值,其颜色由颜色模式建立的数值和颜色值相关关系确定。,颜色模式与原理?,3.2 图像显示-打开jpg图像,获取文件路径 Filepath函数 file=filepath(rose.jpg,subdirectory=examples,data) 打开jpg Read_image函数image1=read_image(file),3.2 图像显示-颜色设置,IDL的颜色由三种特殊值组成。 这些数值为一个三色组,将其写成(R,G,B)即红、绿、蓝,其中红、绿、蓝代表红光、
13、绿光、蓝光作用于该显示颜色时的数量,每个值的范围都在0到255之间。 这样,一种颜色可由256级的红色,256级绿色和256级蓝色组成。这就是说IDL能显示256*256*256,或者说超过167,000,000种颜色。 黄色由亮红和亮绿组成,但没有蓝色。代表黄色的三色组写作(255,255,0),3.2 图像显示-颜色设置,颜色模式:索引颜色模式和RGB颜色模式 索引颜色模式:索引颜色模式也将索引颜色号和色谱表中的特定位置联系起来,其对应的是8位显示器,只能显示28种颜色 RGB颜色模式:RGB颜色模式直接指定颜色,其对应的是24位显示器,能显示所有224种颜色。,3.2 图像显示-颜色设置
14、,3.2 图像显示-颜色设置,RGB颜色分解显示与不分解显示 分解显示,分成RGB三个分量计算,R作为最低分量,G作为中间分量,B作为最高分量 不分解,当成一个整体计算。 比如0000ff: 控制分解或不分解显示,通过decive, decomposed=0/1,控制,0代表不分解,1代表分解,3.2 图像显示-颜色设置,真彩色:24位颜色,数据应该是三维的,其中一维值为3,表示R/G/B三个分量,直接显示 IDL device,decomposed=1 图形显示 图像显示 假彩色:8位,应该是黑白的,灰度值,采用一种转换方法,将颜色转换。device,decomposed=0 图形显示:te
15、k_color,调用颜色表,创建索引颜色(TVLCT) 图像显示:调用颜色表,创建索引颜色(数组形式),3.2 图像显示-颜色设置,指定不分解颜色显示 TVLCT, V1, V2, V3 , Start , /GET , /HLS | , /HSV TVLCT, R, G, B , Index=0-255,3.2 图像显示-颜色设置,系统有预定义41中索引颜色 Loadct过程,3.2 图像显示-TV过程,TV, Image , X, Y , Channel , /CENTIMETERS | , /INCHES , /ORDER , TRUE=1 | 2 | 3 , /WORDS , XSIZE=value , YSIZE=value 位置参数: Image:图像数据 x,y:偏移位置 关键字参数: True:表示数据组织形式,3.2 图像显示-TVSCL过程,TVSCL, Image , X, Y , Channel , /CENTIMETERS , /INCHES , /NAN , /ORDER , TOP=value , TRUE=1 | 2 | 3 , /WORDS , XSIZE=value , YSIZE=value图像拉伸显示:将其值范围扩展到0-255之间。,