Нет проблем в том, как вы очищаете холст, проблема заключается в вашей логике.
Каждый раз, когда вы click
или двигаете мышь, вызывается метод addClick
, который заполняет массивыclickX
, clickY
и clickDrag
с координатами;и затем вызывается метод redraw
, который отображает точки на canvas
.
Поэтому, когда вы очищаете canvas
, вы не можете сбросить эти массивы, поэтому, когда вызывается метод redraw
снова (после очистки холста), старые точки также отображаются на графике.
Поэтому попробуйте очистить массивы clickX
, clickY
и clickDrag
, как показано ниже, когда вы очистите canvas
;так что старые точки не учитываются при запуске заново.
clickX = [];
clickY = [];
clickDrag = [];