使用Graphics2D
进行更多冒险!
这次我正在研究各种油漆/颜色模式以及绘制复杂边框的方法。典型的方法是填充Shape
或Polygon
,然后在顶部绘制相同的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
}
我错过的任何更好的方法,或者没有正确调用的方式?