1

我需要画出连接两点的线。

我正在这样做,在 Java 中。我收到两个点作为参数,我必须计算它们之间的直线是否在黑色图形内。

我使用直线方程开发了自己的解决方案,但我的结果与使用“专业”程序(例如 GIMP 甚至 MS Paint)不同。

这是我想要的一个例子:

替代文字 http://img411.imageshack.us/img411/788/img1q.png

但我的算法是这样做的:

替代文字 http://img267.imageshack.us/img267/1908/img2d.png

*绿点不在图中,这是不可能的。

有任何想法吗?任何人都知道在“专业”应用程序中为此使用了哪些代码?

谢谢!丹尼尔。

编辑:图片

4

4 回答 4

3

“专业”程序最有可能使用Bresenham 的线路算法

于 2010-06-14T17:01:50.313 回答
3

看起来您正在截断而不是四舍五入到最近的像素。在那些小的黑色墨水斑点上很难看到。能发一下代码吗?

于 2010-06-14T17:02:55.710 回答
1

看看Bresenham 的画线算法

于 2010-06-14T17:02:12.880 回答
1

通常使用 Bresenham 算法绘制直线。我没有明白你关于绿点不在图中的观点 - 剪裁是为了不浪费时间在可见区域之外绘制。

于 2010-06-14T17:02:19.853 回答