在下在做一个项目,模拟公路方面的混凝土压实问题。现在想做的是,已知了数量和大小的不同半径的圆,先让他们在平面内随机生成,然后再将他们尽可能地靠近,各个圆之间不相交,不相容。 总体来说相当于数值试验吧,随机生成的目的就是每次排列后的最终结果不相同。 不知哪位高手做过类似的东西?或者给提供一点思路吧。我基础很差,做不出来,现在要急疯了。 先说说目前自己胡乱试验的情况,用的是VB。目前是用circle在界面上画圆,可是画出圆可以修改和移动吗?怎样去判断圆和圆之间不相交不相容呢?

解决方案 »

  1.   

    可是画出圆可以修改和移动吗?半径不变换个圆心重画就可以了******************************怎样去判断圆和圆之间不相交不相容呢?
    两个圆心距离>两个半径的和
      

  2.   

    根据半径与圆心距就可以判断是否相交了,至于交点,那也容易。
      

  3.   

    回楼上两位,谢谢回答!判断我也想到用圆心距离大于两个圆半径之和的办法,可是第i个圆就要和前i-1个圆去判断,这个循环我不太会写还有,怎么移动呢?把原来的圆删掉重画?
      

  4.   

    半径是随机的吗?数目一定吗?