Talk:Bresenham's Line Algorithm

From RogueBasin
Revision as of 06:07, 22 February 2012 by Mikon (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Here's the shorter variant of function bla in Haskell:

import Data.Tuple
bla :: (Int, Int) -> (Int, Int) -> [(Int, Int)]
bla (x0, y0) (x1, y1) =
  let (dx, dy) = (x1 - x0, y1 - y0)
      (q, p, sw) | abs dx > abs dy = (dx, dy, id)
                 | otherwise       = (dy, dx, swap)
      step b (x, y) = (x + signum q, y + signum p * b)
      walk w xy = xy : walk (tail w) (sw . step (head w) . sw $ xy)
  in walk (balancedWord (abs p) (abs q) 0) (x0, y0)
Personal tools