Второй (и последний) заход.

Добавил класс Point, пользуйся им, он полезный. Перевесил слушатель
движения мыши с канвы на документ, ума не приложу, почему так сразу не
было сделано, теперь линия не прерывается и не нужны костыли. parseInt()
предназначена для строк и работает медленнее, чем Math.floor(). В коде
встречаются совсем ужасные вещи, вроде eval() вместо квадратных скобок
или деления с плавающей точкой с последующим округлением вместо
побитовых операций.
Некоторые намеки я сделал, дальнейшее допиливание может вылится в полное
переписывание, так что на этом я закончу. Есть два пути: либо автор
немедленно начнет учить матчасть и постигать дзен, либо скрипт ждет
дальнейшая деградация, а над фейхоа будет смеятся весь чан.