Particles Canvas | Популярная анимация частиц на чистом JS с исходниками

Поделиться
HTML-код
  • Опубликовано: 30 июн 2019
  • #ParticlesJS #canvas #JS
    В видео создадим многим знакомую анимацию #частиц соединяющихся линиями.
    Ссылка на файлы проекта : threepixdroid?w=wall-9...

Комментарии • 161

  • @fineno3789
    @fineno3789 5 лет назад +49

    Очень удивлён, что такой контент получает столько внимания. Качество микрофона, структура подачи, не быстрая, понятная и главное, что приятная! Однозначно подписка, буду ожидать такие видео.

  • @avramishin
    @avramishin 2 года назад +1

    Годное руководство, чётко, понятно, без лишнего трепа. Автор молодец!

  • @mishan9199
    @mishan9199 4 года назад

    Боже мой! Это лучший канал по программированию из всех, что я видел! Очень качественная подача материала, всё ну уж очень понятно! Автор продолжай в том же духе!
    Однозначно луцык и подписка!

  • @annashalbuzova8124
    @annashalbuzova8124 Год назад

    Супер, спасибо большое за такой годный контент по теме canvas. Автору большой респект)🤘👍

  • @user-ll3qg1xm5b
    @user-ll3qg1xm5b 5 лет назад +20

    Блин, это гиперкруто. Лично я бы хотел видеть больше видосов, где ты, так сказать, разбираешь популярные библиотеки. Люблю ванильный js)

  • @whiteblackmask2459
    @whiteblackmask2459 5 лет назад +4

    Top! Спасибо, все очень доступно и понятно.

  • @avinadevil6097
    @avinadevil6097 2 года назад

    Замечательно, превосходно, прекрасно.

  • @revel1051
    @revel1051 5 лет назад

    Очень годно! С меня подписка и лайк.

  • @Vlafder
    @Vlafder 3 года назад +3

    Твои видео настолько подробны и хороши, что я смог перенести твой код на питон и все заработало как надо. Автор удачи тебе

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +3

      Спасибо) Да в этом и смысл) Алгоритм можно перенести куда угодно) Рад ,что ты этим воспользовался) как раз python кстати можно использовать в программе Blender для создания 3д анимаций используя тот же самый алгоритм)

    • @user-zf3ep5ko7p
      @user-zf3ep5ko7p 3 года назад

      @@ThreePixDroid_RU Обязательно расскажу про твой канал друзьям

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      @@user-zf3ep5ko7p Хорошая новость) Спасибо)

  • @dn_zlv
    @dn_zlv 4 года назад

    Прям от души! Спасибо

  • @user-yk5iv1yc6l
    @user-yk5iv1yc6l 5 лет назад

    Гениально.Молодец.С меня подписка и лайк!

  • @user-bj6mx9rf2b
    @user-bj6mx9rf2b 3 года назад +1

    Если будешь продолжать делать такие видео, ты обязательно станешь очень популярным. Продолжай)

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Да, буду продолжать) Спасибо)

  • @gm_Maker
    @gm_Maker 8 месяцев назад

    Круто!😮

  • @adeptusCustodius
    @adeptusCustodius 3 года назад

    Супер!

  • @HugoBossKosta
    @HugoBossKosta Год назад

    ты супер, спасибо!!!

  • @yuriit.8192
    @yuriit.8192 4 года назад +1

    Очень круто! Подача и уровень знаний и результат притягивают! ..заставляют изучать, разбираться и интересоваться! Попал на твой канал случайно ..в поисках взаимосвязи звука и анимации, созданной на js.
    Лайк и подписка!!+

  • @askerkotsev363
    @askerkotsev363 2 года назад

    Почему так приятно было слушать ?

  • @DanielPark-lq3oi
    @DanielPark-lq3oi 2 месяца назад

    ты супер мне прям очень понравился ролик 👍👍❤❤

  • @AleshkaKartoshka812
    @AleshkaKartoshka812 5 лет назад

    Идея и видео блестящая!

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Спасибо! Идея конечно не моя, это очень популярный эффект в интернете, только реализация моя)

  • @joeford8788
    @joeford8788 5 лет назад +1

    все получилось, спасибо

  • @sornelaeda1507
    @sornelaeda1507 5 лет назад

    Очень круто.

  • @onikun2120
    @onikun2120 3 года назад

    Красиво, капец

  • @a.osethkin55
    @a.osethkin55 3 года назад

    Круть!!

  • @jonidepovich7027
    @jonidepovich7027 4 года назад

    Класс мне нратца... ;)

  • @mew6085
    @mew6085 3 года назад

    Такой зашел типо думаю да хуйня видел это, а потом как писать начал кучу новых фишек узнал и в голове а пиздато парниша сочиняет))

  • @ozbeeeee
    @ozbeeeee 2 года назад

    juda zor

  • @raccoonkiller5953
    @raccoonkiller5953 4 года назад

    Боже! Моему восхищению нет предела!) огромное спасибо тебе! надеюсь еще будут видео! оч жду!)
    А не мог бы ты поподробнее останавливаться, разжевывать что делаешь, что за методы, и как их можно применять?)
    Огромное спасибо!)

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      Спасибо) Вообще видео расчитано на тех кто уже понимает js и хочет практики) Видео будет на днях, ну а в следующем после него попробую подробнее разжевать.

  • @AMIR-yc9lv
    @AMIR-yc9lv 4 года назад

    Спасибо

  • @askerkotsev363
    @askerkotsev363 2 года назад

    Чувак ты крут

  • @maksimozhiganov6734
    @maksimozhiganov6734 4 года назад +6

    Очень понравилось. Спасибо большое за интересный контент. Хотелось бы увидеть реализацию движения с музыкой. Спасибо за твой труд.

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      в планах есть пара уроков по визуализации звука с интересными эффектами на canvas.

  • @montenote
    @montenote 4 года назад +4

    Больше подобных уроков пожалуйста! 100 лайков тебе за труд)

  • @user-ic8zh9nw4m
    @user-ic8zh9nw4m 2 года назад

    Спасибо за видео, уже несколько просмотрел и скажу что тебе однозначно нужно развивать канал, тем более что его в рекомендации вывело. Вижу огромный потенциал.

  • @justnewbie3268
    @justnewbie3268 3 года назад

    ахуеть как круто!

  • @drondron6605
    @drondron6605 2 года назад

    Doyti do etogo video ya uchilsta god. OGM.

  • @WEBSTART-LIVE
    @WEBSTART-LIVE 4 года назад +1

    Отлично) на русском мало подобного материала.

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      Скоро станет намного больше! Уже 8 каналов появилось с тех пор как я стал записывать подобные видео! :D

  • @Salem_Witch_
    @Salem_Witch_ Год назад

    Круто, спасибо! а где посмотреть, как привязать это дело к музыке? ужасно хочется попробовать это сделать))

  • @iventeye
    @iventeye 4 года назад

    Очень круто! Не могли бы подсказать, где найти информацию про анимацию на js, сколько не искал информация либо устаревшая, либо говориться про анимацию на jquery

  • @sokolawp
    @sokolawp Год назад

    Алгоритм, добавляющий линии между точками нужно оптимизировать. Во-первых, он рисует линии между двумя одними и теми же точками, а во-вторых он по два раза рисует линии, например при первом проходе он нарисует линию когда индексы цикла будут, скажем, i = 1 и j = 2, а во второй раз нарисует, когда индексы будут i = 2 и j = 1. А вот как улучшить - будет вашим домашним заданием) Изменив циклы можно ускорить проход по точкам в два раза минимум.

    • @sokolawp
      @sokolawp Год назад

      Ну и еще есть некоторые нелогичные моменты, но для новичка пойдет

  • @sevvver1469
    @sevvver1469 3 года назад

    Это лучший гайд из тех которые я видел.
    Появился вопрос: Возможно ли сделать так, чтобы курсор считался точкой?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Привет) да можно)Для этого надо добавить слушатель событий перемещения курсора.
      и 2 переменные для хранения координат мыши..
      будет похоже на это..
      AddEventListener('mousemove', e => {
      mx = e. clientX;
      my = e. clientY;
      })
      после этого
      в методе где двигаем частицы,
      берём самую первую из массива и присваиваем ей координаты мыши.
      Particles [0].x = mx;
      particles [0].y = my....
      Почитай про слушатели событий)
      Есть видео в котором как раз такой способ используется - Притяжение и отталкивание частиц.. ruclips.net/video/KEQsm2yL6Lg/видео.html

  • @iamdan8203
    @iamdan8203 3 года назад +2

    Доброго времени суток.
    Видео интересное и полезное.
    Кстати, этот код можно несколько оптимизировать: в функции, рисующей линии, во внутреннем цикле можно j приравнять к (i + 1). Таким образом операций нужно делать гораздо меньше, ведь не нужно перебирать те точки, которые уже рассматривались.
    Всего доброго

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      Спасибо, всё верно. Кроме того не обязательно рассчитывать точную дистанцию от точки до точки, можно обойтись сравнением квадрата текущего расстояния и нужного расстояния что в свою очередь увеличит производительность.
      Или если расстояние всё таки нужно, можно воспользоваться формулой восьмиугольника и получить расстояние с погрешностью ~5%,
      но зато работает тоже намного быстрее чем извлекать корень.

  • @yuriit.8192
    @yuriit.8192 4 года назад

    Подскажи, пожалуйста, как анимацию сохранить в видео?? Например эти частицы я хочу запустить на 5 мин и это все сохранить в файл mp4, к примеру.
    И как на слабом пк убрать торможение? При движении частицы дергаются.
    Так же не получается заменить фон на картинку. Не знаю как это прописать в Properties ((
    Я только учусь, поэтому такие возможно вопросы.
    Спасибо!

  • @easylaneof
    @easylaneof 5 лет назад +8

    Видео интересное, но могу дать пару советов по поводу кода. Например, те же пробелы. Я понимаю, что это дело личное, но все же лучше, как мне кажется, следовать общепринятым правилам (вроде на learn.js есть). Ну, и смешивание старого и нового синтаксиса довольно странное. Вроде как class и for in, но при этом почему то var. А так ты большой молодец, спасибо за видео

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  5 лет назад +2

      Спасибо) Обязательно буду стараться улучшать код и благодарю за ссылку на "Learn.JS" , уже нашёл нужный раздел - "Советы по стилю кода" называется) Сайт супер , похоже там море полезной информации) Кайф)

  • @4aek03
    @4aek03 Год назад

    Как сделать вместо черного фона в градиент?

  • @askerkotsev363
    @askerkotsev363 2 года назад

    Сделай пожалуйста разбор с лепестками сакуры

  • @user-zy2vd5gw7e
    @user-zy2vd5gw7e 3 года назад +1

    Это. Просто. Гениально.
    Возник вопрос - как перемещать частицы по определенной траектории?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Например создать массив координат по которым должна следовать частица....

    • @despero3226
      @despero3226 2 года назад +1

      @@ThreePixDroid_RU таким же образом получится привязать поведение частиц к курсору? Так, чтобы были (все) частицы, как в случае на видео, но с циклом жизни 6-8сек, но так же и те, что появлялись вокруг курсора и будто бы следовали за ним

  • @Grapeoff
    @Grapeoff 3 года назад

    В функции drawLines мы типа пытаемся отрисовать линию начиная с точки i до всех оставшихся 69 точек?
    И это всё реально так быстро рендерится что мы не замечаем, что всё это выполняется как бы последовательно и заново каждый кадр?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Да. Но это не самая удачная реализация.

  • @johnd1431
    @johnd1431 4 года назад +6

    Нихуясь это чо, АСМР программирование?

  • @party_koala
    @party_koala 9 месяцев назад

    Спасибо за урок! Скажите, пожалуйста, а возможно ли вместо частиц сделать, например, текст, разные слова?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  9 месяцев назад

      Да, конечно.. , самый простой способ рисовать текст вместо кругов. fillText.
      developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillText

    • @gleuphoria2711
      @gleuphoria2711 9 месяцев назад

      @@ThreePixDroid_RUпривет можно его поставить как лоадер сайта?😮

  • @xPyc9x
    @xPyc9x 3 года назад

    а можно ли задать изначальную форму для частиц? то есть какой- то шар или пирамида и весь движ будет в нутри этой формы не зависимо от формы будь то шар или квадрат и тд надеюсь объяснил свои мысли

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      конечно можно) думаю довольно простым вариантом будет загрузить черно белое изображение и создать частицы например только на черных пикселях. Каждый раз проверять координату частицы и если она выходит на белые пиксели разворачивать её. А направление для отскока можно вычислить например на основе координат самой частицы и пикселя на который она наталкивается.

  • @vovastarenko3880
    @vovastarenko3880 2 года назад

    а на гит дабе есть ?

  • @markfialko
    @markfialko 2 года назад

    Привет, не подскажешь почему при смене размера окна в настройках разработчика в гугл скорость частиц возрастает очень? Спасибо за видео!

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  2 года назад

      Тут скорость частиц зависит от частоты обновления экрана - может это как то связанно..

  • @user-cf6ek5kn4z
    @user-cf6ek5kn4z 4 года назад

    Все очень круто, а как сделать адаптив? Есть идеи? А то на мобильном такой скрипт сильно растягивается и частицы не перемещаются(

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      Привет;) Вроде должно помочь простое изменение размера Canvas..
      если добавить слушатель событий, типа resize. ну и для мобильных устройств количество частиц лучше снижать.

  • @user-zf3ep5ko7p
    @user-zf3ep5ko7p 3 года назад

    if self.x+self.xspeed >= width or self.x+self.xspeed = height or self.y+self.yspeed

  • @teador1131
    @teador1131 3 года назад +1

    Привет смотрю из будущего,тоесть сегодня, хахахх, красава спасибо норм получилось , да и позновательно,но есть вопросик один, как теперь на анимацию наложить блок, все что мог перепробывал не канает, зарание от души за ответ! с уважением Luko....

    • @user-ln8mv3nu1j
      @user-ln8mv3nu1j 3 года назад

      да да я тоже пытаюсь поверх как то поставить не получается

    • @user-qn4lh3gk9w
      @user-qn4lh3gk9w 3 года назад

      можно вставить анимацию не в body а в свой блок, ему назначить position: relative, поверх - блок с position: absolute

  • @halvin5394
    @halvin5394 2 года назад

    КТО ТЫ, БЭТМЕН?!?

  • @Nick-hq8of
    @Nick-hq8of 3 года назад

    о вы из англии

  • @r_sklepovyy
    @r_sklepovyy 4 года назад

    Привет, спасибо за урок, как плавно менять цвет?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      Привет) ниже ссылку прикреплю. там как раз плавно меняется цвет.. ruclips.net/video/r6l75hWKpac/видео.html

  • @TechSoft-ps1nk
    @TechSoft-ps1nk 3 года назад

    А как научиться так понимать язык? Пишу код, но не понимаю некоторые моменты. Начал недавно, есть смысл продолжать?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      Просто практиковаться.
      Конечно продолжай, это ведь круто и приятно создавать что то самому.
      Да и много где пригодится может.
      Например можно написать алгоритм генерации плафонов для светильников и распечатать их на 3D принтере, современные фотополимерные 3d принтеры выдают очень хороший результат, очень часто превосходящий по качеству магазинные. Можно конечно просто нарисовать плафон в 3д без программирования.. но это ведь скучно... а если есть генератор, то он каждый раз может выдавать плафон нужной формы если подкрутить настройки, а так же наносить на него уникальный рисунок - это круто.

  • @user-cq3lx9ru8u
    @user-cq3lx9ru8u 2 года назад

    Привет!
    А как в данном случае сделать фото или видео формат самого процесса симуляции, возможно ли ето сделать?
    Или где можна найти такую информацию.
    Наперед спасибкаю!

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  2 года назад +1

      Скриншот можно сделать, если кликнуть правой кнопкой мыши по холсту и 'сохронить изображение как'. Видео можно записать с помощью любого доступного скринрекордера. Я обычно так и делаю, просто перехожу в полноэкранный режим в браузере клавишей f11 и включаю запись экрана obs например.
      Есть вроде несколько библиотек js, позволяющих делать запись, по крайней мере точно видел библиотеки с помощью которых можно сохранить анимацию с холста в gif. А ещё для начала лучше перенести эту анимацию например на pixi.. чтоб не тормозила.

    • @user-cq3lx9ru8u
      @user-cq3lx9ru8u 2 года назад

      @@ThreePixDroid_RU
      Спасибо очень информативно.

  • @abylayhan2087
    @abylayhan2087 4 года назад +1

    Как можно наложить текст поверх анимаций ?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      можно создать текстовый блок и разместить поверх блока canvas или использовать метод filltext в js в самом конце цикла анимации.
      например
      ctx.fillStyle = "green";
      ctx.font = "32px Arial";
      ctx.fillText("Text", 300, 300);

  • @pomadubchak9851
    @pomadubchak9851 4 года назад

    Брат объясни как сделать анимацию при наведении мыши на часть этой анимации, чтобы она немного увеличивалась и поворачиваласи типа 3д эффект докрутить, урок гиперактивности понятен спасибо и объясни мне такому как кто можна реализовать

    • @kertaw3853
      @kertaw3853 4 года назад

      Тогда придётся переделывать

  • @vvv01able
    @vvv01able 3 года назад

    Мне кажется линии оптимальнее чертить:
    for(var i = 0; i

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      Всё верно, так намного лучше) но уже ничего не поделаешь, видео записано) В будущем сниму ремейк🙂

    • @vvv01able
      @vvv01able 3 года назад

      @@ThreePixDroid_RU )) Совершенству нет предела. Мне кажется ремейк не нужен. Видео очень приятное получилось. Разве что загружаемые исходники подредактировать можно. Лучше радуйте всех другими залипательными эффектами. )

  • @user-bj6mx9rf2b
    @user-bj6mx9rf2b 3 года назад

    А можно сделать так чтобы на одной половине были красные а на другой синие, и чтоб когда частица переходила на другую сторону то меняла цвет соответствующий цвету стороны?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Конечно. Просто получаешь координаты точки по 'X' и ширины холста. Добавляешь условие - если значение координаты Х < половины ширины холста. то цвет устанавливаешь например синий. иначе красный.

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      напиши в группу ВК если не понятно, там тебе скину готовый код.

  • @user-qq7te5tp8n
    @user-qq7te5tp8n 4 года назад

    У меня вопрос (может и глупым показаться, но мне все равно). Можно ли подобное сделать при работе с ReactJS?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      Привет) конечно можно)

    • @user-qq7te5tp8n
      @user-qq7te5tp8n 4 года назад

      @@ThreePixDroid_RU а каким образом? есть библиотеки какие-то? Просто я думаю не корректно будет, если в react приложении использовать файлы подобия script.js

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      react это и есть библиотека;)

    • @user-qq7te5tp8n
      @user-qq7te5tp8n 4 года назад

      @@ThreePixDroid_RU я имел ввиду библиотека для библиотеки). Ну я нашел парочку - react-konva и react-canvas. Но с их помощью подобное как видосе (судя по описанию) сделать невозможно.

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад +3

      подразумевается , что библиотеки будут использоваться по назначению, а всё что нельзя сделать используя их , напиши на чистом js.

  • @user-cq3lx9ru8u
    @user-cq3lx9ru8u 2 года назад

    Привет!
    Очень интересная тема, я новачок в этом деле.
    Но у меня не вышло как у вас на видео, только черный фон.
    Хотелось понять почему не вышло.
    Спасибо за ответ если прочитатете.

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  2 года назад

      Привет, слушай, ты можешь просто готовый файл скачать по ссылке в описании! там всё работать должно)

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  2 года назад

      Даже вот так! это прямая ссылка на файлы проекта - vk.com/doc278773966_507731335?hash=a3deb8576e131cdf47&dl=f714fb6610f22f7b2a

    • @user-cq3lx9ru8u
      @user-cq3lx9ru8u 2 года назад

      @@ThreePixDroid_RU Спасибо

  • @fastcode9721
    @fastcode9721 2 года назад

    Как теперь добавить контент на сайт?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  2 года назад

      Посмотри тут. ruclips.net/video/XgXGXEqQJqI/видео.html

  • @dadstreets
    @dadstreets 4 года назад

    15:29 что за музыка на заднем плане?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  4 года назад

      Привет) Видео монтировал на чужом ноутбуке и пока нет возможности посмотреть название трека. сорри...
      скорее всего трек взял в фонотеке ютуба

  • @CLAUSTROPHOBIA327
    @CLAUSTROPHOBIA327 Год назад +1

    делал точно так же даже красных частиц не появилось, тупо черный фон(

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  Год назад

      Ну значит где то ошибка)
      В описании есть ссылка на файлы, можно скачать и убедиться что всё работает) а ещё сравнить со своим кодом и найти ошибки)
      Вот ссылка m.vk.com/doc278773966_507731335?hash=iMiD8vVfxfuGW5jmamb4sNZ6CRBinuJjDvEcA3KVQIk

  • @arhitech6246
    @arhitech6246 3 года назад

    Здравствуйте а как привязать это к движению мыши?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Привет, воспользуйся слушателем событий. addEventListener(`mousemove`, тут вызываешь нужный метод )
      Возможно это видео поможет, там как раз работа с мышью -> ruclips.net/video/KEQsm2yL6Lg/видео.html

    • @arhitech6246
      @arhitech6246 3 года назад

      @@ThreePixDroid_RU и ещё вопрос, а как разместить этот js на фоне сайта?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Например в свойствах css установить canvas z-index на -1

    • @arhitech6246
      @arhitech6246 3 года назад

      @@ThreePixDroid_RU я когда вставляю , и прописываю z-index = -1, у меня section и весь первый экран убегают вниз, а если section убрать внутрь canvas то он пропадает

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      зафиксируй canvas.
      position: absolute
      top: 0
      left: 0

  • @blackdragon8896
    @blackdragon8896 3 года назад

    я так понимаю его как фон для сайта не реально сделать?

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Ну как же не реально) Просто помещаете его в нужное место и всё..
      Если надо что то сверху него разместить , то размещаете..
      Если есть знания Сss и html ,то проблем быть не должно)

    • @blackdragon8896
      @blackdragon8896 3 года назад

      @@ThreePixDroid_RU я просто начинающий и не понял как его загнать под фон, а в гугле только уже готовые прописаные. С обычной картинкой все норм а вот JS я не знаю совсем

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Вот как картинку в body разместить знаешь? Точно так же и Canvas..
      Незнаю как понятнее описать..
      Давай так... если тебе очень надо напиши мне в группе ВКонтакте..
      завтра после работы скину тебе готовый проект с этой анимацией и объясню как подключил...

    • @blackdragon8896
      @blackdragon8896 3 года назад

      @@ThreePixDroid_RU мне капец как надо, честное слово. Буду очень благодарен. Я учусь на программиста и нас нихера не обучают из-за этой пандемии, так плюс ещё я за границей учусь. Приходится все самому полностью, мои друзья на сегодня это гугл, гитхаб, ютуб и индийский парень

    • @blackdragon8896
      @blackdragon8896 3 года назад

      Чуть не забыл книга Герберта Шилдта

  • @onikun2120
    @onikun2120 3 года назад

    velocity от -0.25 до 0.25

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      нет, всё правильно : от -.5 до .5

    • @onikun2120
      @onikun2120 3 года назад

      @@ThreePixDroid_RU Верно, что-то я вчера уже уставший был. Извиняюсь

  • @torcher5023
    @torcher5023 3 года назад

    Что-то эти 60 частиц с трудом в 60 фпс рендерятся, а если взять больше 100, то вообще слайдшоу получается

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад +1

      Вся суть в алгоритме, который можно довольно сильно прокачать, чтоб тянуло намного больше частиц )
      Моя задача была показать как сделать, а сам перенес этот алгоритм в blender ) там нечему тормозить когда ролик отрендерится)

    • @torcher5023
      @torcher5023 3 года назад

      Да, я уже попробовал немного изменить вложенный цикл, стало работать быстрее, но сложность алгоритма всё равно квадратичная. Не подскажите, какие ещё улучшения можно использовать? Читал про квадродеревья, но они довольно сложны в реализации.

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Больше всего тут кушает вычисление квадратного корня для получения расстояния, отрисовка линий и частиц.
      Частицы можно изменить с кругов на квадраты.
      Вложенный цикл должен начинаться со значения j = i + 1 , что бы повторно не вычислять расстояние между частицами.
      Вычисление квадратного корня можно заменить на вычисление гипотенузы с помощью Math.hypot(dx, dy)... или лучше на вычисление приблизительного расстояния - найти формулу можно тут в самом низу en.m.wikibooks.org/wiki/Algorithms/Distance_approximations.
      Прежде чем вычислить расстояние можно убедится что dx и dy уже меньше требуемого расстояния.
      Сократить к минимуму числа с плавающей запятой.
      вместо деления использовать умножение. например вместо / 2, умножить на .5 .
      включить аппаратное ускорение в браузере.
      Объявить все возможные константы и переменные заранее.
      Думаю если сделать вышесказанное, уже будет лучше.
      ( кстати можно ведь вообще корень не вычислять, а просто возвести в квадрат , максимальное расстояние между частицами. то есть сравнивать квадраты )
      ещё хороший вариант - это объединить частицы между которыми рисуется линия в группы, и нарисовать одну длинную зигзаг линию через группу частиц, Это позволит сократить количество вызовов, beginPath.
      У меня с половиной условий из перечисленных, уже тянет 250 частиц без намёка на тормоза.

  • @user-fj7hr6ri3g
    @user-fj7hr6ri3g 2 года назад

    плохо в этом уроке только одно то что ты за кадром код меняешь. Потом новички думают почему не работает)

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  2 года назад +1

      В смысле за кадром? Ничего в коде не менял всё записано одним дублем и вырезаны простои.. к тому же исходники приклеены. Можешь скинуть время "инцидента"? ..возможно на этапе сведения допустил ошибку.

  • @logius84
    @logius84 2 года назад

    Ну я низнаю, по мне как, сильно много лишнего в коде.... Нахрен этот конструктор? Не быть тебе Сеньёрам))

  • @ascilator7174
    @ascilator7174 3 года назад

    Привет, а можешь ответить на вопрос по какой причине линии на мобилках могут не отображаться?
    Вот если что мой вариант. Кстати он даже на микро реагирует)
    ascilator.github.io/particles/

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      Привет) Линии пропадают и на пк в некоторых случаях, не могу уловить от чего. Похоже в момент инициализации где-то...
      Если сжать окно просмотра - так, чтобы ширина была меньше высоты и обновить страничку, линии не появляются.
      Возможно линии получаются просто очень короткими
      line_lebg: w / 9, Проблема в этой строчке... поставь фиксированную длину, например 150 и всё работает норм.
      Над будет заценить как оно с микрофоном, пока нет возможности к сожалению)
      Успехов!)

    • @ascilator7174
      @ascilator7174 3 года назад

      @@ThreePixDroid_RU да, спасибо, конкретные значения помогли. Хотя почему оно не работает с w /9, ведь w это же по сути тоже конкретное значение

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  3 года назад

      @@ascilator7174 линия просто короткая получается..
      Например: ширина окна 500px
      w : 9 = 55.5
      радиус круга 20..
      тоесть 2 круга рядом это уже 40px
      значит линия между ними всего 15px
      плюс у неё альфа(прозрачность) стоит и по этому их не видно..

    • @ascilator7174
      @ascilator7174 3 года назад

      @@ThreePixDroid_RU ну тогда справедливо

  • @EpanchinE
    @EpanchinE 5 лет назад +1

    Почему такая подача материала, Вы же ничего не объясняете? Попробуйте сначала объяснить алгоритм, а уже после покажите как его можно имплементировать на JS. Иначе выглядит, что робот читает написанный код.

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  5 лет назад +7

      вроде , упомянул в видео о том , что отвечу на вопросы если такие остались, не стесняйтесь обращаться. Код довольно простой и не длинный, в нём легко разобраться. вы так же можете посмотреть для начала более простые уроки если у вас не достаточно опыта. спасибо за отзыв, в следующем видео постараюсь быть более подробным.

  • @stranger271271
    @stranger271271 Год назад

    Уэльское произношение не может не радовать. А вот стили как то вяло написаны

  • @PolAero
    @PolAero 7 месяцев назад +1

    Немогу внедрить на свою страницу,в ней есть выпадаюшее меню с веру и уже есть обоина бекраунд которая двигается линейно вправо в лево

  • @stranger271271
    @stranger271271 Год назад

    Зачем лишнее условие && this.VelocityX>0 не требуется

    • @ThreePixDroid_RU
      @ThreePixDroid_RU  Год назад

      Я тебе больше скажу) там вообще условия не обязательны, можно гораздо проще всё считать, но на тот момент я этого не знал) Возможно запишу видос на эту тему... Пока никак не могу вернуться к записи уроков..