0

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

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

谢谢,

米萨

4

1 回答 1

1

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

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

您需要:

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

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

于 2012-05-09T11:17:43.340 回答