JavaScript Canvas 3. Paint в Canvas

  Рет қаралды 35,790

WebDev с нуля. Канал Алекса Лущенко

WebDev с нуля. Канал Алекса Лущенко

7 жыл бұрын

⏰ Курс JavaScript 2.0: itgid.info/course/javascript-2
🧠 Чат Telegram c мозголомками : t.me/itgid_info
👇 Разверни для полной информации
💎 Курс Функции в JavaScript: itgid.info/course/function-2021
🧑🏻‍💻 Сайт: itgid.info
😋 Курс Методы массивов: itgid.info/course/arraymethod
Скачать файлы урока: w3.org.ua/canvas/javascript-ca...
Мы на facebook: / w3.org.ua
Создаем аналог кисточки внутри Canvas c помощью javaScript.

Пікірлер: 50
@user-xc7dx2fi6z
@user-xc7dx2fi6z 7 жыл бұрын
Ты настоящий ГУРУ. Всё настолько доступно и свободно излагается. Спасибо, до этого такие хорошие уроки можно было посмотреть только на английском.
@itgid
@itgid 7 жыл бұрын
Ну надеюсь и мы выйдем на мировой уровень.
@vladimka125
@vladimka125 5 жыл бұрын
Вы ещё хауди хо не видели)
@user-jr9dn5wb5e
@user-jr9dn5wb5e 7 жыл бұрын
Вариант с кнопкой очистки и изменением размера пера. HTML: 1 2 3 4 5 CSS: #convas_paint { width: 400px; height: 200px; border: 3px solid black; margin: 40px; cursor: crosshair; box-shadow: 0px 0px 30px rgba(0,0,0,0.5); } .panel { margin: 40px; } JS: var canvas = document.getElementById('convas_paint'); var ctx = canvas.getContext('2d'); var myColor = 'black'; var rSize = 1; document.getElementById('size').oninput = function(){ rSize = this.value; } document.getElementById("color").oninput = function(){ myColor = this.value; } canvas.onmousedown = function(event){ var x = event.offsetX; var y = event.offsetY; ctx.beginPath(); ctx.moveTo (x,y); ctx.drawing = true; } canvas.onmousemove = function (event){ if (ctx.drawing){ var x = event.offsetX; var y = event.offsetY; ctx.lineWidth = rSize ctx.strokeStyle = myColor ctx.lineCap = "round" ctx.lineTo (x,y) ctx.stroke() } } canvas.onmouseup = function(){ ctx.drawing = false; } document.getElementById('pClear').onclick = function(){ ctx.beginPath(); ctx.clearRect(0, 0, 400, 200); }
@ElenTrip
@ElenTrip 5 жыл бұрын
Спасибо за Видеоуроки! Очень понятно все и практично)
@user-wv7tx4mb6d
@user-wv7tx4mb6d 4 жыл бұрын
Лайк за годный контент. Очень понятно объясняете. Так держать!!!
@valerkamops5388
@valerkamops5388 6 жыл бұрын
Спасибо за видео урок :)
@somedayiwill7361
@somedayiwill7361 4 жыл бұрын
полезный урок, спасибо!
@iua8702
@iua8702 6 жыл бұрын
Спасибо за урок! Просто и понятною
@user-nn2qm5hk6p
@user-nn2qm5hk6p 2 жыл бұрын
Спасибо, очень круто.
@user-ni5kz3je2s
@user-ni5kz3je2s 6 жыл бұрын
privet s Armeniii mne ochen nravitsa vashe video izuchayu vse i vsem svoim znakomim programistom rekamenduyu posmotret deistvitelno nigde net takogo kachestvo i dostupnosti kak u vas respect ot Armyan
@itgid
@itgid 6 жыл бұрын
Спасибо!
@user-ni5kz3je2s
@user-ni5kz3je2s 6 жыл бұрын
nadeyus budut novie video i pro js i pro ostalnoe
@urbanmauglisq9554
@urbanmauglisq9554 6 жыл бұрын
Здорово!
@albeksultanov8342
@albeksultanov8342 2 жыл бұрын
Респект...как всегда..
@fenics764
@fenics764 7 жыл бұрын
Можно сделать рисовалку с плавными линиями (без углов и прерываний) var canvas = document.getElementById("c1"); var ctx = canvas.getContext("2d"); var myColor = "red" document.getElementById("colorrr").oninput = function(){myColor = this.value; ctx.beginPath();} canvas.onmousedown = function(event){ var x = event.offsetX; var y = event.offsetY; ctx.strokeStyle = myColor ctx.lineCap = "round" ctx.lineWidth = 5 ctx.moveTo (x,y); canvas.onmousemove = function (event){ var x = event.offsetX; var y = event.offsetY; ctx.lineTo (x,y) ctx.stroke() } canvas.onmouseup = function(){ canvas.onmousemove = null; }}
@itgid
@itgid 7 жыл бұрын
Класс! Держите лайк за код!
@q1dsdsdsq2dssdsd95
@q1dsdsdsq2dssdsd95 6 жыл бұрын
Хороший вариант! мне тоже понравился. я немного доработал function Drawing(){ block.onmousemove=function(event){ a.moveTo(event.layerX, event.layerY); setTimeout(funcLT,30); function funcLT(){ a.lineTo(event.layerX, event.layerY); }; a.stroke(); } block.onmouseup=function(){ block.onmousemove=null; } }
@vvv7220
@vvv7220 5 жыл бұрын
Кнопку "Стереть все" можно добавить. let clearAll = document.getElementById('clearAll'); clearAll.onclick = function(){ ctx.clearRect(0, 0, 400, 200); }
@wengot
@wengot 3 ай бұрын
Thx 👍
@user-rj6ro3mp1p
@user-rj6ro3mp1p 6 жыл бұрын
палец вверх кто писал нехорошие слова))
@texno5440
@texno5440 3 жыл бұрын
Скажите а можно как то отловить в какую сторону мы зажали и тянем то есть в лево или в право
@vvv7220
@vvv7220 5 жыл бұрын
Toggle device toolbar в Chrome можно включить пиксельную линейку.
@itgid
@itgid 5 жыл бұрын
Да можно, и уже давно!
@user-mx2bi6le6r
@user-mx2bi6le6r 6 жыл бұрын
А можно по аналогии canvas.onmousemove = null для отмены отслеживания курсора мыши при событии mouseup писать так: canvas.onmousemove = function() { return false; }
@itgid
@itgid 6 жыл бұрын
можно и так.
@kaserblog
@kaserblog 5 жыл бұрын
А как сделать такое, но чтобы результат всегда сохранялся. Ну тоесть допустим поставить такой пейнт на сайт и чтобы каждый заходил и зарисовывал других?
@itgid
@itgid 5 жыл бұрын
Для этого есть серверные языки.
@user-dn6wn4pz5q
@user-dn6wn4pz5q 6 жыл бұрын
Можно ведь не заводить постоянно две переменные canvas и ctx. Можно разу написать var ctx = document.get.elementById('c1').getContext('2d'); Работа будет та же, но код будет немного сокращён
@itgid
@itgid 6 жыл бұрын
конечно можно, но это урок для обучения, поэтому код стараюсь делать читабельнее чем оптимальнее.
@user-wv7tx4mb6d
@user-wv7tx4mb6d 4 жыл бұрын
Скажите пожалуйста, для чего мы 2 раза задаем ширину canvas. Имею ввиду в html и CSS?
@annalukianova2506
@annalukianova2506 4 жыл бұрын
тоже не понимаю, достаточно подать в .js и всё отлично работает
@user-hq2re6kv5e
@user-hq2re6kv5e Жыл бұрын
если не задать в html -- координаты будут могут неправильно отображаться
@user-hi9ij6xu8c
@user-hi9ij6xu8c Жыл бұрын
у меня почему то ничего не рисуется
@vvv7220
@vvv7220 5 жыл бұрын
Выбор цвета работает без написания функции. let canvas = document.getElementById('c2'), ctx = canvas.getContext('2d'); canvas.onmousedown = function(event){ canvas.onmousemove = function(event){ let x = event.offsetX; let y = event.offsetY; ctx.fillRect(x-2, y-2, 10, 10); let myColor = document.getElementById('myColor').value; ctx.fillStyle = myColor; ctx.fill()//Команда заливки ctx.lineCap = "round" ctx.lineWidth = 5; } canvas.onmouseup = function(){ canvas.onmousemove = null; } }
@itgid
@itgid 5 жыл бұрын
Да, а применение и модификация - требуют функции.
@vvv7220
@vvv7220 5 жыл бұрын
Скажу что понятно-совру. Я новичок в программировании. Но возьму на заметку.
@Vimble
@Vimble 6 жыл бұрын
У меня ошибку пишет в getContext('2d')
@itgid
@itgid 6 жыл бұрын
скидывайте код, посмотрим.
@Vimble
@Vimble 6 жыл бұрын
JavaScript решает я скачал ваш с вашего сайта и все пооучилось , но у меня тоже самое я скопировал ваш html и все получилось!Спасибо
@itgid
@itgid 6 жыл бұрын
А нашли где проблема? В подключении JS?
@Vimble
@Vimble 6 жыл бұрын
JavaScript решает да, спасибо
@vadimfine2468
@vadimfine2468 4 жыл бұрын
@@itgid oshibka bila potomu chto tag java scripta doljhen bit raspolojhen pod tag-om canvasa
@mas4erlomas4er
@mas4erlomas4er 6 жыл бұрын
лучше сделать не canvas.onmouseup = function () { canvas.onmousemove = null; } а document.onmouseup = function () { canvas.onmousemove = null; }
@itgid
@itgid 6 жыл бұрын
согласен!
@criticaster743
@criticaster743 6 жыл бұрын
example of implementation one more Paint in JavaScript: kzfaq.info/get/bejne/a5l5ndp-lrWuYY0.html
JavaScript Canvas 4. Дуги и круги
18:47
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 29 М.
Учим HTML5 Canvas за 30 минут!
36:56
Хауди Хо™ - Просто о мире IT!
Рет қаралды 210 М.
Я нашел кто меня пранкует!
00:51
Аришнев
Рет қаралды 4,5 МЛН
I CAN’T BELIEVE I LOST 😱
00:46
Topper Guild
Рет қаралды 116 МЛН
ОСКАР vs БАДАБУМЧИК БОЙ!  УВЕЗЛИ на СКОРОЙ!
13:45
Бадабумчик
Рет қаралды 5 МЛН
Зачем нужны указатели в C++?
8:14
Dima
Рет қаралды 4,2 М.
JavaScript Canvas 1. Основы canvas
14:20
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 101 М.
JavaScript Canvas 2. Рисуем линии
16:36
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 42 М.
Enums considered harmful
9:23
Matt Pocock
Рет қаралды 198 М.
Generative Art with Vanilla JavaScript
32:56
Franks laboratory
Рет қаралды 58 М.
Урок 5. JavaScript. Promise. Что это, как работает (+ пример)
23:18
Я нашел кто меня пранкует!
00:51
Аришнев
Рет қаралды 4,5 МЛН