【问题标题】:How to fill an irregular polygon which has been drawn by mouse clicks?如何填充通过鼠标单击绘制的不规则多边形?
【发布时间】:2019-11-02 21:59:22
【问题描述】:

我正在开发一个 java 图形项目。所以基本上,我需要使用鼠标点击在我的JPanel 上绘制一个形状。我必须提示用户输入效果良好的边框颜色,但我不知道如何填充不规则多边形。我已提示用户使用JColorChooser 选择形状颜色,但如何填充呢?

我正在尝试在我的 paintComponent 方法中实现它。

【问题讨论】:

标签: java algorithm swing graphics paintcomponent


【解决方案1】:

但我不知道如何填充不规则多边形。

  1. 创建一个Polygon 对象来表示Shape
  2. 使用 Graphics2D draw(Shape) 方法绘制 Shape 轮廓,使用 fill(Shape) 方法填充 Shape

简单示例:

Polygon triangle = new Polygon();
triangle.addPoint(0, 0);
triangle.addPoint(15, 30);
triangle.addPoint(30, 0);
g2d.setColor( Color.RED );
g2d.fill( triangle );

【讨论】:

  • 当多边形有更多边时如何使用三角形?
  • 正如我所说的“三角形”是一个“简单”的例子。为什么你认为你只能在Polygon 上加 3 分?您至少需要 3 面来包围形​​状。如果你想要更多的边然后添加更多的点。
  • 抱歉我是初学者
  • 我认为你没有得到我。我的多边形是通过鼠标点击绘制的,它可以有尽可能多的边,比如 20 多个边。我将如何填充这样的形状?
  • 它可以有许多边......比如超过 20 条边。 - 我已经告诉过你,你可以向多边形添加多个点。所以基本步骤是:1)你在你的类中创建一个多边形的实例,你可以在其中进行自定义绘画。 2)在您的 MouseListener 代码中,当您单击鼠标时,将鼠标点添加到多边形并调用 repaint() 3) 在 paintComponent(...) 方法中,您使用我上面提供的最后两行代码来设置颜色并绘制多边形。 4)它会按照您的预期进行绘制,或者不会。我不知道一个 20 面的多边形应该是什么样子。
猜你喜欢
  • 1970-01-01
  • 2012-04-22
  • 2022-08-03
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
相关资源
最近更新 更多