本帖最后由 chncsu 于 2011-11-22 10:49 编辑
ccb137731 发表于 2011-11-9 11:33
我和师兄以前做过类似模拟,大致思路如下:
1.将颗粒(直径小于对变形)填满整个空间;
2.导入多边形形状的 ...
你指的是不是这样的集料颗粒?
我看了一篇论文里有关于不规则颗粒的随机生成方法,它首先生成随机圆,然后再在圆周上找到N个点作为多边形的顶点,构造任意多边形。关于这一节我贴在后面,供各位参考,我对其实现有一些疑惑,希望能够得到帮助:1、判断随机圆与圆之间的算法怎样实现比较节省计算量呢?
2、找到了多边形的顶点以后,如何在多边形中生成颗粒集合呢?如何定义多边形内颗粒与不属于多边形内的那些填充颗粒的区别?
附录:骨料单元随机生成技术及相应的程序设计已知条件:(1)区域范围,假设为矩形,长度L,宽度B,左下角坐标为(Xo,Yo); (2)颗粒粒经范围:最小集料粒径Dmin和最大集料粒径Dmax。为了能够按照不同的颗粒级配生成不同形状的集料单元,本研究提供一种按照正态分布随机生成集料颗粒的算法。算法设计步骤如下: 1设计正态随机分布函数:double rand(){},该函数可以用来产生符合正态分布的随机数。 2 随机产生集料颗粒外接圆圆心Xc,Yc和半径radius,产生办法如下:Xc=Xo+B*rand();Yc=Yo+B*rand() 3把当前产生的集料颗粒外接圆加入到相应的数据链表中,并检查是否与链表中的其它外接圆发生相互嵌入。如果嵌入发生,说明新产生的圆与已经产生的圆在几何位置上发生冲动,其中之一必须更改。本文更改新产生的单元,即返回步骤2重新产生外接圆的几何位置和半径。 4 遍历如上圆对象,在其上任取n点,其中第i个点的坐标按如下公式确定:Xi=Xc+radius*cosa;Yi=Yc+radius*sina;其中,a为随机生成的角度。 通过以上四步就可以根据颗粒级配随机生成任意形状的多变性集料。但值得注意的是在第3步中,判断是否发生叠合时,应采用一定的方法减少邻近单元查找所需的花费。本文采用的是邻近元查找的“区域法”,程序的详细内容请参考源程序。
range name ran0 line origin 0.03767190.0330841 normal -0.002734 -9.33939e-005 &
lineorigin 0.0378553 0.0277124 normal -0.000301691 0.00285886 & lineorigin 0.0328064 0.0271796 normal 0.00288233 0.00229803 & lineorigin 0.0314873 0.0288341 normal 0.00323619 -0.000501549 & lineorigin 0.0320986 0.0327788 normal 0.000815492 -0.00304106 & lineorigin 0.0363287 0.0339131 normal -0.00197112 -0.00319373 range name ran1 line origin 0.08357480.0130893 normal -0.0048475 -0.00361564 & lineorigin 0.0857566 0.0101642 normal -0.00499581 0.00134589 & lineorigin 0.0838713 0.00316624 normal -0.00226338 0.0055719 & lineorigin 0.0802917 0.00171217 normal 0.00194885 0.00542944 & lineorigin 0.0754468 0.00345118 normal 0.00469618 0.00036361 & lineorigin 0.074797 0.0118438 normal 0.000632185 -0.00445545 range name rani line origin 0.01900860.0491907 normal -0.00645588 0.00188044 & lineorigin 0.0172743 0.0432366 normal -0.0016161 0.00593858 & lineorigin 0.00932899 0.0410744 normal 0.00458417 0.00496146 & lineorigin 0.00487375 0.0451909 normal 0.00675381 -0.000129118 & lineorigin 0.0049897 0.0512556 normal 0.00188529 -0.00498192 & lineorigin 0.0146108 0.0548965 normal -0.00512414 -0.00394948 ;…………………….; many similarities are neglected
|