【发布时间】:2018-09-25 03:14:30
【问题描述】:
我在 Haskell wiki 中找到了“Bresenham 的线条绘制算法”的代码,但是我不太容易理解开头的部分,所以我重写了它。但是当斜率超过 1/2 时,我无法画线。 这是我的部分代码。
line :: Point -> Point -> [Point]
line (x0,y0) (x1,y1)
| abs (y1-y0) > abs(x1-x0) = line (y0,x0) (y1,x1)
| x0 > x1 = line (x1,y1) (x0,y0)
| otherwise = plotLine x0 y0 0
where
在 where 子句中,我定义了 plotLine 函数,就像 Haskell wiki 中的“go”一样。由于我的其余代码与 Haskell wiki 中的代码几乎相同,所以我认为问题是从一开始的。但我无法弄清楚。谁能帮帮我?
顺便说一下,这里是Haskell wiki上“Bresenham's line drawing algorithm”的网站:https://wiki.haskell.org/Bresenham%27s_line_drawing_algorithm
【问题讨论】: