Вопрос
Как рисовать бесплатно (используя мышь/пальцы) на элементе canvas, как вы можете сделать это в краске с помощью карандаша?
Об этом вопросе
Есть много вопросов, которые хотят добиться свободного рисования на холсте:
- рисовать мышкой с холстом HTML5
- KineticJS - рисовать бесплатно с помощью мыши
- Бесплатный рисунок на холсте с использованием fabric.js
- Наброски с помощью JS
- Краска не работает должным образом
- Положение мыши на холсте
- Реализация гладкого эскиза и рисования на элементе
Итак, я подумал, что было бы неплохо сделать справочный вопрос, где каждый ответ будет вики-сообществом и содержит объяснение только одной библиотеки JavaScript/чистого JavaScript, как рисовать на холсте.
Структура ответов
Ответы должны быть wiki сообщества и использовать следующий шаблон:
## [Name of library](Link to project page)
### Simple example
A basic, complete example. That means it has to contain HTML
and JavaScript. You can start with this:
<!DOCTYPE html>
<html>
<head>
<title>Simple example</title>
<script type='text/javascript' src='http://cdnjs.com/[your library]'></script>
<style type='text/css'>
#sheet {
border:1px solid black;
}
</style>
<script type='text/javascript'>
window.onload=function(){
// TODO: Adjust
}
</script>
</head>
<body>
<canvas id="sheet" width="400" height="400"></canvas>
</body>
</html>
If possible, this example should work with both, mouse and touch events.
[JSFiddle](Link to code on jsfiddle.net)
This solution works with:
<!-- Please test it the following way: Write "Hello World"
Problems that you test this way are:
* Does it work at all?
* Are lines separated?
* Does it get slow when you write too much?
-->
* Desktop computers:
* [Browser + Version list]
* Touch devices:
* [Browser + Version list] on [Device name]
### Import / Export
Some explanations how to import / export user drawn images.
### Line smoothing
Explanations about how to manipulate the line the user draws.
This can include:
* Bézier curves
* Controlling thickness of lines