zoukankan      html  css  js  c++  java
  • Voronoi Diagram

    1.Voronoi图的定义

    Voronoi图,又叫泰森多边形或Dirichlet图,它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。N个在平面上有区别的点,按照最邻近原则划分平面;每个点与它的最近邻区域相关联。Delaunay三角形是由与相邻Voronoi多边形共享一条边的相关点连接而成的三角形。Delaunay三角形的外接圆圆心是与三角形相关的Voronoi多边形的一个顶点。 Voronoi三角形是Delaunay图的偶图。

    Voronoi图示例:

    2.Voronoi图的特点

    (1)每个V多边形内有一个生成元; 
    (2)每个V多边形内点到该生成元距离短于到其它生成元距离; 
    (3)多边形边界上的点到生成此边界的生成元距离相等; 
    (4)邻接图形的Voronoi多边形界线以原邻接界线作为子集。

    3.Voronoi的应用

    在计算几何学科中的重要地位,由于其根据点集划分的区域到点的距离最近的特点,其在地理学、气象学、结晶学、航天、核物理学、机器人等领域具有广泛的应用。如在障碍物点集中,规避障碍寻找最佳路径

    4.js html实现绘画Voronoi图

    <html>  
      <head>  
            <meta charset="utf-8">  
            <title>弦图</title>  
      
      </head> 
        <body>  
            <script src="http://d3js.org/d3.v3.min.js"></script>
        
            <svg></svg>
            <script>
            var width = 960,
            height = 500;
    
            var vertices = d3.range(100).map(function(d) {
                return [Math.random() * width, Math.random() * height];
            });
            console.log(vertices);
    
            var data = d3.geom.voronoi(vertices)
                .map(function(d) {
                    return "M" + d.join("L") + "Z"; 
            });
    
            var svg = d3.select("svg")
            .attr("width", width)
            .attr("height", height);
    
            var path = svg.append("g").selectAll("path");
            path = path.data(data);
    
            var colorScale = d3.scale.category20c();
    
            path
            .enter()
            .append("path")
            .attr({
            "fill":function(d, i) { return colorScale(i) },
            "stroke": "black",
            "d": function(d){ return d }
            });
            
            path.order();
            </script>
            
        </body>  
    </html>  

    运行结果:

  • 相关阅读:
    Ubuntu 配置IP地址方法
    ubuntu server 16.04安装GPU服务器
    Ubuntu 自动获取ip地址
    Typedef 用法
    linux mount命令详解(iso文件挂载)
    specrate 与specspeed 的区别
    SPEC CPU 使用简介
    编译错误you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
    SPEC CPU 2006编译perl 出错:undefined reference to `pow'
    'gets' undeclared here (not in a function)
  • 原文地址:https://www.cnblogs.com/starryxsky/p/7348149.html
Copyright © 2011-2022 走看看