⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vsym.pro

📁 basic median filter simulation
💻 PRO
字号:
PRO VSYM, Nvert, STAR=star, SKELETON=skeleton, POLYGON=polygon, $    FILL=fill, ROT=rot, THICK=thick;+; NAME:;       VSYM;; PURPOSE:;       Create "Mongo"-like polygonal plot symbols; EXPLANATION:;       This procedure generates a subset of Mongo-like plot symbols.;       The symbols are the rotationally symmetric ones that have;       a specified number of vertices and are either open or filled.;       (The half-filled symbols are not included.)     After defining the;       plot symbol with VSYM, make the call to PLOT (or PLOTS or OPLOT) with ;       PSYM=8.;; CATEGORY:;       Graphics;; CALLING SEQUENCE:;       VSYM, Nvert;; INPUT POSITIONAL PARAMETERS:;       Nvert:     Number of vertices in plot symbol.  Maximum value;                  used is 24.;; INPUT KEYWORD PARAMETERS:;       STAR:      Set this flag to get a star.  E.g., ;                  vsym, 5,/star gets you a pentagram.;       SKELETON:  Set this flag to get an asterisk-like symbol, where;                  the center is connected to each vertex.  E.g.,;                  vsym, 4, /skel gets you an X.;       POLYGON:   Set this flag to get a regular polygon.  This is;                  the default symbol type.;       FILL:      Set this flag to get filled symbol.  Default=open;       ROT:       Rotation of symbol about center, in degrees.;                  E.g., vsym, 4, rot=45 gets you a diamond, whereas;                  vsym, 4 gets you a square.;       THICK:     Line thickness of symbol.  Default=!P.thick;; MODIFICATION HISTORY:;       Written by:     R. S. Hill, RITSS, 2 Oct 98;-On_error, 0IF n_elements(nvert) LT 1 THEN nvert=4IF nvert GT 24 THEN $    message,/info,'More than 24 vertices requested; 24 used'nv = nvert < 24vangle = (nv-2.)/nv*180.st = keyword_set(star)sk = keyword_set(skeleton)po = keyword_set(polygon)fi = keyword_set(fill)rt = keyword_set(rot)IF n_elements(thick) LT 1 THEN thick=!P.thickrot_zero = -0.5*vangleif rt then rot_zero = rot_zero + 180./nvertIF st + sk + po GT 1 THEN message, 'More than one symbol type specified'IF st + sk + po EQ 0 THEN po=1angles = indgen(nv+1)/float(nv) * 2 * !pi + rot_zero/180.0*!pix = cos(angles) & y = sin(angles)inv2 = indgen(nv+1)*2inv2_1 = indgen(nv)*2 + 1IF po THEN BEGIN    usersym, x, y, fill=fi, thick=thickENDIF ELSE IF sk THEN BEGIN    xx = fltarr(2*nv+1) & yy = xx    xx[inv2] = x    yy[inv2] = y     usersym, xx, yy, thick=thickENDIF ELSE IF st THEN BEGIN    rot2 = rot_zero + 180./nv    inner_angles = $        indgen(nv)/float(nv) * 2 * !pi + rot2/180.0*!pi    inner_x = cos(inner_angles)*0.32    inner_y = sin(inner_angles)*0.32    xx = fltarr(2*nv+1) & yy = xx    xx[inv2] = x    xx[inv2_1] = inner_x    yy[inv2] = y    yy[inv2_1] = inner_y        usersym, xx, yy, fill=fi, thick=thickENDIFRETURNEND

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -