如何在Java图形中找出用户绘制的线条中的所有像素



我一直在尝试将用户绘制的线的所有像素都放入数组中。

稍后我将尝试对这条线进行分析,因此不要错过任何像素非常重要。使用我目前使用的代码,它错过了相当多的像素。问题应该在于图形创建线条而不是单个像素的方式。设置的像素将保存到image1Pixel数组中。这是我myMouseDragPaint函数,其中我将行保存到数组中。有谁知道我如何改变这一点,这样我就不会错过任何像素?如果您需要有关此问题的任何其他信息,请随时询问。

谢谢

米扎

您在代码中仅保存行顶点,缺少它们之间的所有像素:

image1Pixel[currX][currY] = 1; // line vertex
G.drawLine(prevX, prevY, currX, currY); // this draws a whole line, no just two vertex points

您需要:

  • 插值该线上的所有像素。 例如,流行的算法是布雷森汉姆的
  • 或获取图像并直接从中读取像素颜色

另外,请注意,线条不会覆盖单个像素(完全垂直或水平像素除外)。因此,第二个选项将更适合您,因为您不会在图形库之后重复绘图数学。

最新更新