Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.12.2016, 19:19
Интересующийся
Отправить личное сообщение для ryslan-yc Посмотреть профиль Найти все сообщения от ryslan-yc
 
Регистрация: 18.12.2016
Сообщений: 23

Столкновение картинок, столкновения, реализация метода определения столкновения
Здравствуйте.
Вот нужно реализовать метод который определяет касается картинка картинки 2 учитывая что у них нет фона или они векторные .
Демо: http://ruslanuch.zzz.com.ua/html.html

Есть следующая идея:
Проверяем (X,Y 1px 1 картинки)=(X,Y 1px 2 картинки )||(X,Y 1px 1 картинки)=(X,Y 2px 2 картинки) и так далее до победного конца.

Метод 2: у нас есть область где картинка 1 наползает на картинку 2
мы ставим картинку 1 выше второй, узнаем на каких координатах они наползают друг на друга, допустим Х:[0,10] Y:[5,10]
и проверяем методом document.elementFromPoint(x, y); X:0,Y:5 если вернуло не картинку 1 не 2 значить не эта точка = false
следующая X:1,Y:5 если метод вернул картинку 2 значит false ведь картинка 2 прорисована ниже и нам вернуло ее а значить что картинка 1 там не прорисована, идем дальше X:2,Y:5 метод нам вернул картинку 1 а это
значит что здесь возможно столкновение!И мы на время ставим картину 2 сверху и вызываем document.elementFromPoint(x, y); с темы же координаторами и если вернет картинку 2 значит здесь они пересекаются иначе идем дальше, надеюсь принцип работы вам понятен.

Как на меня метод 2 будет более производительным чем первый, но все же он очень "тяжёлый, медленный, сложный (по роботе)" может есть подобное методы в браузере или JS, фейерверки использовать не хочу
Или может у вас есть идеи как повысить производительность.
Ответить с цитированием
  #2 (permalink)  
Старый 27.12.2016, 19:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

ryslan-yc,

if(el1.style.left - el2.style.left < 200) бумсс!!!
Ответить с цитированием
  #3 (permalink)  
Старый 27.12.2016, 20:12
Интересующийся
Отправить личное сообщение для ryslan-yc Посмотреть профиль Найти все сообщения от ryslan-yc
 
Регистрация: 18.12.2016
Сообщений: 23

картинка векторная или с прозрачным фоном это значить что с размером 20 на 10 допустим нас получается такая картина
Припустим пиксельная сетка
000000000X0000000000
00000000XXX000000000
0000000XXXXX00000000
000000XXXXXXX0000000
00000XXXXXXXXX00000
0000XXXXXXXXXXX0000
00000XXXXXXXXX00000
000000XXXXXXX000000
0000000ХХХХХ0000000
00000000000000000000
X: это закрашена картинка 0: это пусто здесь столкновения не будет.
Если на нее налезет картинка слева или справа меньше чем на 4 (0,Х)
то касания как бы то не будет, оно уже есть если брать блок но его нету если брать картинку (отображаемую часть)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск