结果图:

附加源码:

  1. PRO testVoronoi
  2.  
  3. idx = 0
  4.  
  5. ; 创建离散点
  6.  
  7. CASE idx OF
  8.  
  9. ; 随机离散点
  10.  
  11. 0: BEGIN
  12.  
  13. N = 36
  14.  
  15. X = RANDOMN(seed, N)
  16.  
  17. Y = RANDOMN(seed, N)
  18.  
  19. END
  20.  
  21. ; 规则离散点
  22.  
  23. 1: BEGIN
  24.  
  25. X = REBIN(INDGEN(6)+10, 36,1)
  26.  
  27. Y = REFORM(REBIN(INDGEN(6)+10, 6,6),36,1)
  28.  
  29. N = N_ELEMENTS(X)
  30.  
  31. END
  32.  
  33. ; 较规则离散点
  34.  
  35. 2: BEGIN
  36.  
  37. X = REBIN(INDGEN(6)+10, 36,1)+ RANDOMU(seed, 36,1)
  38.  
  39. Y = REFORM(REBIN(INDGEN(6)+10, 6,6),36,1)+ RANDOMU(seed, 36,1)
  40.  
  41. N = N_ELEMENTS(X)
  42.  
  43. END
  44.  
  45. ELSE:
  46.  
  47. ENDCASE
  48.  
  49. ; 构建Delaunay三角网
  50.  
  51. TRIANGULATE, X, Y, tr, CONN=C
  52.  
  53. ; 绘制离散点
  54.  
  55. Points = PLOT(x, y, $
  56.  
  57. LINESTYLE=6, $
  58.  
  59. SYMBOL='o', SYM_COLOR='black', $
  60.  
  61. SYM_SIZE=0.5, $
  62.  
  63. /SYM_FILLED, SYM_FILL_COLOR='black', $
  64.  
  65. AXIS_STYLE=4, $
  66.  
  67. MARGIN=[0,0,0,0], $
  68.  
  69. WINDOW_TITLE='泰森多边形')
  70.  
  71. FOR I=0, N-1 DO BEGIN
  72.  
  73. ; 获取第i个泰森多边形:
  74.  
  75. VORONOI, X, Y, I, C, Xp, Yp
  76.  
  77. ; 快速可视化绘制
  78.  
  79. ; 创建Polygon函数中的CONNECTIVITY关键字,指定连通性
  80.  
  81. n=N_ELEMENTS(Xp)
  82.  
  83. con = [n,INDGEN(n)]
  84.  
  85. ; 绘制泰森多边形
  86.  
  87. poly = POLYGON(Xp,Yp,/data,CONNECTIVITY=con, /current, $
  88.  
  89. FILL_BACKGROUND=1, FILL_COLOR=I*7+5, RGB_TABLE=25, $
  90.  
  91. COLOR='white')
  92.  
  93. ENDFOR
  94.  
  95. ; 绘制三角网,如果不想绘制,把这几行注释即可
  96.  
  97. n_Tr = (SIZE(tr, /DIMENSIONS))[1]
  98.  
  99. FOR i = 0,n_Tr-1 DO BEGIN
  100.  
  101. tri = POLYGON(X[tr[*,i]], Y[tr[*,i]], CONNECTIVITY=[3,0,1,2], $
  102.  
  103. /current, color = 'black', /data, FILL_BACKGROUND=0, $
  104.  
  105. LINESTYLE=4)
  106.  
  107. ENDFOR
  108.  
  109. ; 将离散点置顶显示
  110.  
  111. Points.ORDER, /BRING_TO_FRONT
  112.  
  113. END

IDL创建泰森多边形的更多相关文章

  1. IDL 创建数组

    1.赋值创建 通过方括号[]赋值创建数组,示例代码如下 IDL> arr=[1,2,3] IDL> help,arr ARR INT = Array[3] IDL> arr=[[1, ...

  2. ArcGIS空间分析工具

    1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 Z 信息 添 ...

  3. JDK/bin目录下的不同exe文件的用途(转)

    新安装完JDk 大家是否发现安装目录的bin文件夹有很多exe文件 下面就为大家讲解不同exe文件的用途 javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件 ...

  4. JDK/bin目录下的不同exe文件的用途

    新安装完JDk 大家是否发现安装目录的bin文件夹有很多exe文件 下面就为大家讲解不同exe文件的用途 javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件 ...

  5. jdk目录详解及其使用方法

    jdk目录详解 jdk目录详解 JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境.它由一个处于操作系统层之上的 ...

  6. Analysis Tools(分析工具)

    分析工具 1.叠加分析 # Process: 交集取反 arcpy.SymDiff_analysis("", "", 输出要素类, "ALL" ...

  7. ArcMap操作随记(13)

    1.为地图册创建定位器地图 创建数据框→标注字段(PageName)→格网索引图层[导出数据]→图层右键,[属性]|[定义查询] 2.为地图册创建动态文本 导出→[文件]|[导出地图]→PDF 3.关 ...

  8. ArcMap操作随记(8)

    1.构建两点之间连线 [构造视线] 2.编辑相邻多边形(边界等) [拓扑]工具条→[共享要素] 3.点要素空间分配 [创建泰森多边形]→[裁剪] 4.面要素空间分配 [要素转折点]→[创建泰森多边形] ...

  9. ArcMap操作随记(7)

    1.栅格分辨率调整 [重采样] 2.点集数据对插值模型精度检验 test数据→[子集要素](地统计分析)→train→[插值]→[多值提取至点]→[字段计算器](Abs([value]-[spline ...

随机推荐

  1. <MYSQL Index>

    About Mysql 1. Mysql工作流程分析 2. Mysql单实例安装(5.6.31) DATABASE 1. 事务的4种隔离级别 ——————————————————Mysql管理———— ...

  2. CentOS install搭建SVN服务器

    安装步骤如下: 1.命令:yum install subversion 之后会打印很多消息,显示 Complete! 则完成. 2.查看 svn 版本:svnserve --version 3.创建S ...

  3. RabbitMQ上手记录–part 4-节点集群(单机多节点)

    现在互联网应用动不动就说要HA,好像不搞个HA都不好意思说自己的应用能承载高并发,大用户量访问.RabbitMQ这个经典的消息组件,也必然逃不掉单点失效的尴尬局面.当然在RabbitMQ在被广泛应用于 ...

  4. bootstrap栅格系统的属性及使用

    栅格系统 媒体查询 在栅格系统中,我们在 Less 文件中使用以下媒体查询(media query)来创建关键的分界点阈值. 小屏幕(平板,大于等于 768px) @media (min-width: ...

  5. httpServletRequest中的流只能读取一次的原因

    首先,我们复习一下InputStream read方法的基础知识, java InputStream read方法内部有一个,postion,标志当前流读取到的位置,每读取一次,位置就会移动一次,如果 ...

  6. Intellij IDEA run coverage之覆盖率测试

    Intellij IDEA run coverage之覆盖率测试 idea 的coverage + 我们自己写的测试用例.最后看一下,我们要测的代码有没有测试到,这是一个不错的提高代码质量的方法. i ...

  7. [js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法

    环境准备: 全局安装jade: npm install jade -g 初始化项目package.json: npm init --yes 安装完成之后,可以使用 jade --help 查看jade ...

  8. Vue2.x之父子组件数据传递

    父传子,并且通过fatherEvent接收子组件传过来的值 <template> <div class='father'> <Son :fatherData=" ...

  9. ES6新语法之let关键字;有别于传统关键字var的使用

    ES6新语法于2015年发布:而我这个前端小白在17年才接触到.惭愧惭愧!!不过到目前为止,似乎只有FireFox和Chrome对ES6的支持相对良好.不过既然人家ES6已经出来了,还是要跟上技术的潮 ...

  10. Spring Boot—18Redis

    pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-ja ...