在一个矩形区域内,如何画出不相交的,半径在一定范围内的多个圆?
比如说,已经画了N-1个圆,那么在画第N个圆的时候,就要跟前面N-1个圆来比较,不让第N个圆与前面N-1个圆相 交,一个个比较这个过程好麻烦啊。VC里面有没有什么函数可以比较快地解决这个问题啊,我对VC的类不熟,你可以提供一些线索吗? 
这个算法要怎么设计好呢?
一个个比较真是有点麻烦啊。而且数据结构又应该怎么选择呢?
你有更好的方法吗??
说来听听

解决方案 »

  1.   

    有一个用来判断两个图形是否相交的函数
    具体忘记了
    好像叫Intersect???
      

  2.   

    找出第N个圆的圆心与前N-1个圆中圆心距离最小的一个圆Dis,
    再比较Dis是否>那两个半径的和,
    真,则第N个圆不与前N-1个圆相交,
    否,则相交。
      

  3.   

    我觉得可以在图形模式下,把显存RAM的页付权值,就是在画新圆的时候,和屏幕上已有的去进行与运算,如果在指定范围内都为0,则不相交;否则,相交
    呵呵,不对不要骂我啊~~~