马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
Voronoi 图(泰森多边形)的属性:
唯一且不重叠的区域:
每个区域对应一个生成点,并且没有两个区域重叠。边界由连接相邻点的线的垂直平分线定义。
最近点属性:
Voronoi 单元内的每个点都比任何其他点更接近其生成点。
凸性:
如果生成点处于一般位置(没有三个点共线),则 Voronoi 单元是凸多边形。
对加权系统的适应性:
Voronoi 图可以扩展到加权系统,从而产生功率图或乘法加权 Voronoi 图。
动态特性:
如果生成点的位置发生变化,则图会动态变化。
Voronoi 图的应用:
地理空间分析:
用于地理学中根据与兴趣点的接近度划分区域,例如在油井或服务中心之间划分土地。
寻路和机器人技术:
通过确定安全区域或最短路径,帮助避障和路径规划。
资源分配:
用于规划仓库、医院或手机信号塔等设施的最佳位置,以尽量缩短服务距离。
气象学和水文学:
帮助插入和分析空间数据,如降雨分布或流域制图。
计算几何:
构成网格生成、最近邻搜索和聚类算法的基础。
生物学和生态学:
模拟细胞结构、动物领地或资源竞争区。
图像处理和图形:
用于纹理合成、图像分割和创建 Voronoi 艺术等艺术效果。
游戏开发:
用于虚拟环境中地形或区域的程序生成。
 - (defun c:tt ()
- (and (setq ss (xdrx-ssget
- (xdrx-string-multilanguage
- "\n选择点对象<退出>:"
- "\nSelect point object <exit>:"
- )
- '((0 . "point"))
- )
- )
- (setq pl (xdrx-entsel
- (xdrx-string-multilanguage
- "\n选择外边界<退出>:"
- "\nSelect outer boundary <exit>:"
- )
- '((-4 . "<and")
- (0 . "*polyline")
- (-4 . "&=")
- (70 . 1)
- (-4 . "and>")
- )
- )
- )
- (xdrx-points->voronoi ss pl t)
- )
- (princ)
- )
 - (defun c:tt1 ()
- (if (and (setq ss (xdrx-ssget
- (xdrx-string-multilanguage
- "\n选择点对象<退出>:"
- "\nSelect point object <exit>:"
- )
- '((0 . "point"))
- )
- )
- (setq pl (xdrx-entsel
- (xdrx-string-multilanguage
- "\n选择外边界<退出>:"
- "\nSelect outer boundary <exit>:"
- )
- '((-4 . "<and")
- (0 . "*polyline")
- (-4 . "&=")
- (70 . 1)
- (-4 . "and>")
- )
- )
- )
- (setq polygon (xdrx-points->voronoi ss pl))
- )
- (progn
- (xdrx-begin)
- (xdrx-entity-delete ss)
- (xdrx-sysvar-push '("pdmode" 99 "pdsize" 10))
- (foreach m polygon
- (setq bound (car m)
- pnt (cadr m)
- clr (xdrx-math-rand 0 100)
- )
- (xdrx-point-make pnt)
- (xdrx-setpropertyvalue (entlast) "color" clr)
- (xdrx-polyline-make bound t)
- (xdrx-setpropertyvalue (entlast) "color" clr)
- )
- (xdrx-sysvar-pop)
- (xdrx-end)
- )
- )
- (princ)
- )
|