大家有用过photoshop,autocad一类的软件吧,他们一个典型的功能就是“删除”已经画好的图形,比如画一个矩形,觉得不合适,那鼠标点一下矩形的边框,矩形就自动被选中了,再按"DEL"按忸,矩形就被删除掉。难点是屏幕上可能同时存在很多个图形!有人知道算法怎么样吗?有人提示我每画一个图形,就把它的一些信息保存下来,如直线的两个端点,圆的圆心和半径...每次点鼠标,就通过特别的算法找出选中的图形
有难度的问题,希望有人能解答。谢谢

解决方案 »

  1.   

    http://xmsoft.xiloo.com
    这是一款很好的电脑辅助工具。包括以下几大功能:·文件粉碎 ·文件分割·文件合并·生成网页索引·文本文件转成网页文件·简繁体转换·注册表修复等
      

  2.   

    rtdb(东临碣石) 
    能否再详细些?
      

  3.   

    还要详细?所有图元有一个公共基类。
    至少有一个虚函数 Draw(),
    每个图元在自己的Draw()显示自己要显示的东西。
    主程序只要调用基类的Draw()就可以了。
    这是多态最经典的例子。再说就太多了。
    VC中原来有个简单例子的, 可惜时间太长, 我不记得在哪里了。《设计模式》用的例子也差不多, 只是更复杂。
      

  4.   

    呵呵,忘了说了,不能用C++,只能用C,anyway,Thank you so much
      

  5.   

    MSDN中不是有个示例吗?
    深入浅出中也有点提到
      

  6.   

    再次提醒只能用C,这是我们的作业,用SRGP图形软件包做一个简单的类似画板的东东,所有的功能我都实现了,包括存盘。最难的是delete,还没有头绪。。年过完了,大家来思考问题吧>_<~~
      

  7.   

    你看一下这个源码吧.
    http://www.vckbase.com/code/listcode.asp?mclsid=7&sclsid=705
    中的第一个.
    <<矢量绘图软件EastDraw及其完整源代码 >>
    他用MFC写的,但里面的算法应该是可以用的.