如何找出Java Graphics中用户绘制的行中的所有像素

时间:2012-05-09 10:58:03

标签: java graphics line

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

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

谢谢,

Miza

1 个答案:

答案 0 :(得分:1)

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

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

您需要:

  • 插入该行上的所有像素。例如,流行的算法是Bresenham's
  • 或获取图像并直接从中读取像素颜色

另外,请注意,线条不包括单个像素(完全垂直或水平除外)。所以第二个选项对你来说会更好,因为你不会在图形库之后重复绘制数学。