现在想设计一个图形,不知道怎么才好,希望各位高手指点!本人想画一个圆形,不是纯圆形,上下左右是四条短横线,其他地方是环形。里面有随机个正方形,求一个排列算法,不管方形多少个,可以充满外面的类圆形。不知道我说清楚了吗?

解决方案 »

  1.   

    本帖最后由 bdmh 于 2010-11-22 14:35:04 编辑
      

  2.   

    可以这样设计算法,不过效率可能比较低,假设圆的直径是d,小正方形的个数是n,按你说的这个n是指定的,可以是任何一个数量,小正方形的边长是L,,但如果是正方形的话不能保证边缘的正方形一定和圆相交,下面是伪代码
    L初始为0
    while(TRUE)//循环
    {
       L+=1 每次循环边长+1
       //用L长的小正方形去填充满边长为d大正方形,那个圆就是这个大正方形的内切圆,假设用了x个小正方形
       x=d^2/L^2 //x取整
       t=x
       for(i=0;i<t;i++) //循环x次
       {
         检测第i个小正方形的4个顶点是不是在直径为d的内切圆内,是-继续,不是-则x-1
       }
       比较x和n,当x第一次小于n的时候,中断循环
    }
    L值即为在n个小正方形填充圆情况下的小正方形边长
    不知道楼主是不是这个意思,还是我理解错了。