结果图:

附加源码:

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. [转]HTTP请求中的form data和request payload的区别

    本文转自:http://www.cnblogs.com/btgyoyo/p/6141480.html jQuery的ajax方法和post方法分别发送请求,在后台Servlet进行处理时结果是不一样的 ...

  2. activemq控制面板含义

    Name 消息队列的名称 Number Of Pending Messages 等待消费的消息数量,即未出队列的消息数量.可以理解为总接收数-总出队列数 (未持久化的话,重启acmq后会清零) Num ...

  3. C#共享内存整理

    1.System.IO.MemoryMappedFiles 内存映射文件类 内存映射文件将文件的内容映射到应用程序的逻辑地址空间. 内存映射文件使程序员得以处理极大的文件(这是因为可以并发管理内存), ...

  4. Oracle官网下载参考文档

    最近有人问我有没有Oracle11g数据库官方参考文档,我就想,这不是在官网可以下载到的吗,疑惑,问了之后才知道,他官网找过,但时没有找到.不要笑,其实有很多人一样是找不到的,下面就一步一步操作下: ...

  5. 关于Java中语句符号及格式的理解

    关于Java中语句符号及格式的理解 这篇文章是撰写的第一篇文章,在此作一下博主是一名在读的工科研究生,种种原因,研二开始决定转行从事程序员工作.开始的自学之路并不算非常顺畅,也走了一点弯路,但一直都坚 ...

  6. [转]linux文件批量转码

    linux系统里提供的文件转化编码的命令iconv,例如: iconv -t utf- -f gb2312 -c test.xml > text_UTF8.xml -f  源编码-t  目标编码 ...

  7. SpringCloud Eureka(注册中心集群)

    多个注册中心,其实用不同的配置对应 不同的端口号注册就行了. 注册中心自己也是个服务,看看之前的单个注册中心是怎么样的呢? server: port: 8888 # 服务端口eureka: insta ...

  8. java工具类-交易码

    /** * 功能描述:交易码 * */ public class TransCode { //登录 public static final String LOGIN="A001"; ...

  9. 基于 vue+element ui 的cdn网站(多页面,都是各种demo)

    前言:这个网站持续更新中...,有网上预览,github上也有源码,喜欢记得star哦,欢迎留言讨论. 网站地址:我的个人vue+element ui demo网站 github地址:yuleGH g ...

  10. Invoke 和 BeginInvoke 的区别

    在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate 一.为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是dot ...