如题,一个多边形,中间有两个洞,填充的时候洞要空着,怎么画啊?
怎么找也没找到相关答案,难到大家没碰到过,不可能吧?
好像Java不像VC里好画咯?各位想画两个洞出来的达人想简单了.我要画的是地图,那么一幅图有三四十个图层.先画大多边形再画小多边形一定会覆盖某些层的内容.再说一般也会出现两个AB图层的这种情况:A图层有内容在B图层的多边形洞中,B图层也有内容在A图层的多边形洞中,因此也不可能先画多边形外边界的大多边形,再画两个洞消掉原来的颜色,这样会把别的层的东西也去掉。
用XOR模式也不行,会改变颜色的!我想不通难道java里解决这个图形里常见的问题的方法都没有吗?!!!!

解决方案 »

  1.   

    java3D 的功能比较多, java2d比较简单,可能实现不了你要的效果,  看看java3d吧.
      

  2.   

    机器上没Java环境,凭印象写的,你试试吧,最主要是java.awt.geom.Area这个类
    java.awt.Graphics2D g2d = (java.awt.Graphics2D) g;
    g2d.setColor(java.awt.Color.RED);
    java.awt.Shape r = new java.awt.geom.Rectangle2D.Float(0, 0, this.getWidth(), this.getHeight());
    java.awt.geom.Area a = new java.awt.geom.Area(r);
    a.exclusiveOr(new java.awt.geom.Area(new java.awt.geom.Ellipse2D.Float(50, 50, 50, 50)));
    a.exclusiveOr(new java.awt.geom.Area(new java.awt.geom.Ellipse2D.Float(150, 50, 50, 50)));
    g2d.fill(a);
      

  3.   

    把图片添加进一个LinkedList
    然后遍历这个LinkedList
    后画的图形把先画的图形遮住就可以了,想好了放进去的次序!
      

  4.   

    moon_cool(月影剑),UnAgain() 又属于回帖不看贴的人。地图的矢量的,数据这样大,搞一次判断我还不如直接把有洞的多边形按像素画上去效率还高些。UnAgain没看懂题。另外谢mq612(五斗米) 提供的思路,具体行不行再试!