oronoi图也叫泰森多边形,它是由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。在地理学、气象学、结晶学、航天、核物理学、机器人等领域具有广泛的应用,比如化学领域晶体结晶过程的模拟,站点选址、辖区管制边界等问题。
对于仿真问题,可以借由abaqus来实现有关单元的创建,这里我们不涉及具体领域的理论和应用过程,仅提供关于实现有关图形创建的思路和过程。
在abaqus中利用python实现Voronoi图(以二维图为例)的基本思路是生成Voronoi图的顶点,然后通过脚本在abaqus绘制草图完成。那么获取顶点坐标是关键,我们利用python的数据包scipy以及matplotlib来编写完成,scipy自带Voronoi图的api函数,所以使用起来比较方便,当然小编查了网上的资料发现MATLAB实现起来也很简单,这里对此不做介绍。
对于使用新版本比如abaqus2020的用户,软件已经内部自带python2.7.15和python3.7.3,而且附带带有scipy以及matplotlib,这简直是开发者的超级福音,需要做二次开发并且调用外部包的用户直接配置就行,非常方便。
下面我们来看看怎么实现Voronoi图的绘制。首先获得各顶点坐标,如图所示部分代码完成二维的Voronoi图绘制,直接调用Voronoi函数使用(如图-1所示),生成的虚线表示边界顶点存在无穷远点(这是本代码不足的地方,需要在完善,暂时仅供参考)。
1final_points=[]
2for i in initial_points:
3 x,y=i
4 random_num=random.uni