Line drawing algorithm