У меня есть элемент холста HTML и реализована кисть, которая фиксирует события mousedown
, mousemove
и mouseup
элемента холста. Все это отлично подходит для рисования на холсте. Однако я не думаю, что мне нравится, что вы не можете продолжить рисование, если ваша мышь покидает холст на середине хода. Это как бы просто отсекает его. На мой взгляд, это очень неумолимо для человека и не очень удобно для пользователя.
Если вы откроете Microsoft Paint и начнете рисовать кистью, эллипсом или чем-то еще, пока вы начинаете с холста, вы можете перетащить указатель мыши в любое место на экране и повторно войти в холст в любом месте. Это также упрощает, например, рисование четверти круга в углах, потому что вы можете перетащить инструмент эллипса за пределы экрана. Я надеюсь в этом есть смысл.
В любом случае, мне было интересно, есть ли способ реализовать это с помощью холста HTML5 или как я буду реализовывать такие вещи. Пользователь никогда бы не увидел ничего нарисованного там; в основном это просто функция для удобства использования.
Изменить: проблема со многими из этих решений заключается в том, как обрабатывать координаты. В настоящее время мой холст находится в середине экрана, верхний левый угол - (0, 0)
, а нижний правый - (500, 500)
. Также следует учитывать перевод координат.
Edit2: Я обнаружил, что, по-видимому, вы можете просто выйти за пределы холста. Например, вы можете указать отрицательные значения ширины, высоты и координат, и элемент холста справится с этим без проблем. Таким образом, в основном решение, вероятно, будет включать в себя просто захват документов mousemove
и mouseup
и простой перевод x
и y
для начала в верхнем левом углу холста.