2009-04-27 51 views
4

任何知道如何在Java中重新创建交叉散列纹理?下面的C#代码显示了如何在.NET框架中完成此操作。 Java片段很近,但我无法正确地将线条旋转45度。Java交叉阴影纹理

C#

HatchBrush crossHatch = 
     new HatchBrush(HatchStyle.Cross, somecolor, somecolor); 

的Java

BufferedImage bufferedImage = 
     new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB); 

Graphics2D g2 = bufferedImage.createGraphics(); 

g2.setColor(Color.BLUE); 
g2.fillRect(0, 0, 5, 5); 
g2.setColor(pinColor); 
g2.fillOval(0, 0, 5, 5); 

// paint with the texturing brush 
Rectangle2D rect = new Rectangle2D.Double(0, 0, 5, 5); 
g2d.setPaint(new TexturePaint(bufferedImage, rect)); 
g2d.fill(shape); 

在此先感谢。

回答

9

下面是一个应该划格在5个像素的间隔:

BufferedImage bufferedImage = 
     new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB); 

Graphics2D g2 = bufferedImage.createGraphics(); 
g2.setColor(backColor); 
g2.fillRect(0, 0, 5, 5); 
g2.setColor(stripeColor); 
g2.drawLine(0, 0, 5, 5); // \ 
g2.drawLine(0, 5, 5, 0); ///

// paint with the texturing brush 
Rectangle2D rect = new Rectangle2D.Double(0, 0, 5, 5); 
g2d.setPaint(new TexturePaint(bufferedImage, rect)); 
g2d.fill(shape);