结果图:

附加源码:

PRO testVoronoi

  idx = 0

  ; 创建离散点

  CASE idx OF

    ; 随机离散点

    0: BEGIN

      N = 36

      X = RANDOMN(seed, N)

      Y = RANDOMN(seed, N)

    END

    ; 规则离散点

    1: BEGIN

      X = REBIN(INDGEN(6)+10, 36,1)

      Y = REFORM(REBIN(INDGEN(6)+10, 6,6),36,1)

      N = N_ELEMENTS(X)

    END

    ; 较规则离散点

    2: BEGIN

      X = REBIN(INDGEN(6)+10, 36,1)+ RANDOMU(seed, 36,1)

      Y = REFORM(REBIN(INDGEN(6)+10, 6,6),36,1)+ RANDOMU(seed, 36,1)

      N = N_ELEMENTS(X)

    END

    ELSE:

  ENDCASE

  ; 构建Delaunay三角网

  TRIANGULATE, X, Y, tr, CONN=C

  ; 绘制离散点

  Points = PLOT(x, y,                    $

    LINESTYLE=6,                         $

    SYMBOL='o', SYM_COLOR='black',          $

    SYM_SIZE=0.5,                        $

    /SYM_FILLED, SYM_FILL_COLOR='black', $

    AXIS_STYLE=4,                        $

    MARGIN=[0,0,0,0],                    $

    WINDOW_TITLE='泰森多边形')

  FOR I=0, N-1 DO BEGIN

    ; 获取第i个泰森多边形:

    VORONOI, X, Y, I, C, Xp, Yp

    ; 快速可视化绘制

    ; 创建Polygon函数中的CONNECTIVITY关键字,指定连通性

    n=N_ELEMENTS(Xp)

    con = [n,INDGEN(n)]

    ; 绘制泰森多边形

    poly = POLYGON(Xp,Yp,/data,CONNECTIVITY=con, /current,  $

      FILL_BACKGROUND=1, FILL_COLOR=I*7+5, RGB_TABLE=25,    $

      COLOR='white')

  ENDFOR

  ; 绘制三角网,如果不想绘制,把这几行注释即可

  n_Tr = (SIZE(tr, /DIMENSIONS))[1]

  FOR i = 0,n_Tr-1 DO BEGIN

    tri = POLYGON(X[tr[*,i]], Y[tr[*,i]], CONNECTIVITY=[3,0,1,2],    $

      /current, color = 'black', /data, FILL_BACKGROUND=0,       $

      LINESTYLE=4)

  ENDFOR

  ; 将离散点置顶显示

  Points.ORDER, /BRING_TO_FRONT

END

最新文章

  1. .NET 基础一步步一幕幕[面向对象前言]
  2. Construct Binary Tree from Preorder and Inorder Traversal [LeetCode]
  3. 百度APIStore
  4. 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇08:弹幕系统》本系列完结
  5. android之自定义ViewGroup和自动换行的布局的实现
  6. [Oracle] 11G自己主动收集统计信息
  7. FusionCharts重写单系列图
  8. 算法与数据结构(五) 普利姆与克鲁斯卡尔的最小生成树(Swift版)
  9. vue将网页中的特定部分转成pdf并下载(仅供个人学习记录)
  10. asp.net webapi 生成在线文档--Swagger
  11. mysql实现成绩表中成绩的排名
  12. [Linux]PHP-FPM与NGINX的两种通讯方式
  13. ubuntu在指定的文件夹下创建python3和python2的虚拟环境
  14. Copycat - Overview
  15. Docker学习笔记之docker volume 容器卷的那些事(二)
  16. checked和stop()的讲解
  17. python:'ascii' codec can't encode character
  18. [转]在Windows中安装PhpUnit
  19. LeetCode刷题第二天
  20. io流中read方法使用不当导致运行异常的一点

热门文章

  1. Socket编程 - API
  2. Angular的第一个组件
  3. why go
  4. 扩展jquery插件的方式
  5. 大话JVM(一):垃圾收集算法
  6. 应用层协议FTP、DNS协议、HTTP协议分析
  7. oracle数据同步
  8. SVN提交小结
  9. HTML5 Form Data 对象的使用
  10. LINUX创建LVM、PV、VG、LV ORACLE服务器方案划分