在Graphics2D中使用draw()/ drawPolygon()创建边框问题

时间:2015-10-13 15:51:35

标签: java polygon shape paintcomponent graphics2d

使用Graphics2D进行更多冒险!

这次我正在研究各种油漆/颜色模式以及绘制复杂边框的方法。典型的方法是填充ShapePolygon,然后在顶部绘制相同的Shape(使用不同的颜色)。我熟悉设置Strokes等等以改变边框厚度和其他位。

我最近的尝试是使用RadialGradientPaint作为定义多个颜色条带的方式,但这似乎不适用于draw / drawPolygon调用(或额外的)颜色没有出现。

绘制调用绘制的是厚度为3的空多边形,但是为均匀蓝色条带。以下是渐变/ paintComponent代码:

g2d.setStroke(new BasicStroke(h.getHexBorderWidth())); // this is set to 3
Point2D center = new Point2D.Float(50, 50);
float radius = 1;
float[] dist = {0.0f, 0.5f, 1.0f};
Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};

// the float value is defined as 0.0 in the constructor
RadialGradientPaint p =
    new RadialGradientPaint(center, radius, new Point2D.Float(), dist, colors, 
         CycleMethod.NO_CYCLE);
g2d.setPaint(p);                    
if(((BasicHexagon) h).isAnimating()
    && ((BasicHexagon) h).getCurrentTransform() != null) { // just general null checks
    g2d.draw(((BasicHexagon) h).getCurrentTransform()); // this is a transformed Shape
} else {
    g2d.drawPolygon(h.getBase()); // this is a Polygon
}

我错过的任何更好的方法,或者没有正确调用的方式?

0 个答案:

没有答案