Java 相交形成闭合形状的多条绘制线的填充颜色
我需要用Java和Graphics2D绘制一辆汽车。我使用了多个基本行程来确定汽车的形状。我该如何用颜色填充它?例如,在三角形的形状中画3条线,然后想用颜色填充它。你不能简单地填充一个仅通过画三条线创建的形状。您必须定义形状,包括它所包含的所有线 具体如何实现这一点取决于几个因素。例如,是否要对所有三条线使用相同的笔划,或者它们是否需要不同的笔划 如果您已经提供了一些信息,说明您目前是如何准确地画出这些线的,这可能会有所帮助。我试着在这里猜一猜 因此,假设当前代码大致如下所示:Java 相交形成闭合形状的多条绘制线的填充颜色,java,colors,fill,stroke,Java,Colors,Fill,Stroke,我需要用Java和Graphics2D绘制一辆汽车。我使用了多个基本行程来确定汽车的形状。我该如何用颜色填充它?例如,在三角形的形状中画3条线,然后想用颜色填充它。你不能简单地填充一个仅通过画三条线创建的形状。您必须定义形状,包括它所包含的所有线 具体如何实现这一点取决于几个因素。例如,是否要对所有三条线使用相同的笔划,或者它们是否需要不同的笔划 如果您已经提供了一些信息,说明您目前是如何准确地画出这些线的,这可能会有所帮助。我试着在这里猜一猜 因此,假设当前代码大致如下所示: void pai
void paintCar(Graphics2D g)
{
g.setStroke(new BasicStroke(1.0f));
g.setColor(Color.BLUE);
// Draw the triangle
g.drawLine(100,100,200,100);
g.drawLine(100,200,150, 50);
g.drawLine(150, 50,100,100);
}
另外填充此三角形的最简单方法是如下更改:
void paintCar(Graphics2D g)
{
g.setStroke(new BasicStroke(1.0f));
g.setColor(Color.BLUE);
Path2D path = new Path2D();
// Build the triangle
path.append(new Line2D.Double(100,100,200,100), false);
path.append(new Line2D.Double(100,200,150, 50), true);
path.append(new Line2D.Double(150, 50,100,100), true);
// Draw the triangle
g.draw(path);
// Fill the triangle, with a different color
g.setColor(Color.CYAN);
g.fill(path);
}
但是请注意。。。
。。。有更优雅和简洁的方法来实现这一点。通常,不会附加单个Line2D
段,只需使用Path2D
构建形状:
void paintCar(Graphics2D g)
{
g.setStroke(new BasicStroke(1.0f));
g.setColor(Color.BLUE);
// Build the triangle
Path2D path = new Path2D();
path.moveTo(100,100);
path.lineTo(200,100);
path.lineTo(150, 50);
path.closePath();
// Draw the triangle
g.draw(path);
// Fill the triangle, with a different color
g.setColor(Color.CYAN);
g.fill(path);
}
因此,如果您有适当形式的形状坐标(可能存储为
Point2D
对象列表),那么您可以更轻松地创建一个可以绘制和填充的形状。您可能需要使用polygon
@FastSnail,我想知道为什么oracle网站仍然建议这样做。这似乎是历史遗留下来的,过时了。正确的方法是在这里使用一个Path2D
。@Marco13 oops从来都不是新的。。