After a brilliant suggestion from Darkstar, I've fixed swapped X/Y with half of the Bresenham line drawing. buttonfly now looks exactly as it ought to.

[Linked Image from i.imgur.com]

[Linked Image from i.imgur.com]

[Linked Image from i.imgur.com]

[Linked Image from i.imgur.com]