1 36 37 40 41 package java2d.demos.Paths; 42 43 import static java.awt.Color .*; 44 import java.awt.*; 45 import java.awt.geom.GeneralPath ; 46 import java2d.Surface; 47 48 49 53 public class WindingRule extends Surface { 54 55 public WindingRule() { 56 setBackground(WHITE); 57 } 58 59 60 public void render(int w, int h, Graphics2D g2) { 61 62 g2.translate(w*.2, h*.2); 63 64 GeneralPath p = new GeneralPath (GeneralPath.WIND_NON_ZERO); 65 p.moveTo(0.0f, 0.0f); 66 p.lineTo(w*.5f, 0.0f); 67 p.lineTo(w*.5f, h*.2f); 68 p.lineTo(0.0f, h*.2f); 69 p.closePath(); 70 71 p.moveTo(w*.05f, h*.05f); 72 p.lineTo(w*.55f, h*.05f); 73 p.lineTo(w*.55f, h*.25f); 74 p.lineTo(w*.05f, h*.25f); 75 p.closePath(); 76 77 g2.setColor(LIGHT_GRAY); 78 g2.fill(p); 79 g2.setColor(BLACK); 80 g2.draw(p); 81 g2.drawString("NON_ZERO rule", 0, -5); 82 83 g2.translate(0.0f, h*.45); 84 85 p.setWindingRule(GeneralPath.WIND_EVEN_ODD); 86 g2.setColor(LIGHT_GRAY); 87 g2.fill(p); 88 g2.setColor(BLACK); 89 g2.draw(p); 90 g2.drawString("EVEN_ODD rule", 0, -5); 91 } 92 93 public static void main(String s[]) { 94 createDemoFrame(new WindingRule()); 95 } 96 } 97 | Popular Tags |