结果图:

附加源码:

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

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. CUBA China 最新进展

    各位关注CUBA平台的朋友,你们好! 距上次发布动态我们又沉默了大概两个月时间,这期间我们一直在翻译CUBA平台的文档.CUBA平台的开发文档相当丰富,所以这需要耗费较多的时间,至少比我们预想的时间要 ...

  2. 笔记:css3伪选择器改变滚动条样式

    现在我打开支持前缀-webkit-的浏览器,也就是说只要支持前缀为-webkit-的浏览器才有效果 <!doctype html> <html lang="en" ...

  3. node.js 读取文件

    一般用法 var path = require("path"); var fs = require("fs"); //let filePath = path.j ...

  4. ASP.NET jQuery 事件里调用后台方法

    利用js 调用后台写的方法 <script src="js/jquery-1.7.1.min.js"></script> <script> $( ...

  5. QQ简易版

    package QQ; /* * * 登录界面 * */ import javax.swing.*; import java.awt.event.ActionEvent; import java.aw ...

  6. Springboot集成SpringData JPA

    序 StringData JPA 是微服务框架下一款ORM框架,在微服务体系架构下,数据持久化框架,主要为SpringData JPA及Mybatis两种,这两者的具体比较,本文不做阐述,本文只简单阐 ...

  7. 基于socket的简单p2p聊天项目

    https://blog.csdn.net/Jacky_Can/article/details/74984822 https://blog.csdn.net/qq_20889581/article/d ...

  8. (利用DOM)在新打开的页面点击关闭当前浏览器窗口

    1.在开发过程中我们前端的用户体验中有时候会要求点击一个按钮,关闭当前浏览器窗口.用html DOM就可做到. 2.注意:本次写法要求在新窗口中关闭. target="_blank" ...

  9. CentOS安装Oracle 11g R2

    官方的安装链接: https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCGJCEA 检查硬件需求 1. 内存需求 物理内 ...

  10. pom.xml 如果使用 mvn exec:exec 命令运行项目

    pom.xml 如果使用 mvn exec:exec 命令运行项目,红色字体要与groupid相同 <project xmlns="http://maven.apache.org/PO ...