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