Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Нужно определить наложение двух фигур (canvas, js) (https://javascript.ru/forum/misc/70372-nuzhno-opredelit-nalozhenie-dvukh-figur-canvas-js.html)

jeysmook 31.08.2017 17:23

Нужно определить наложение двух фигур (canvas, js)
 
Добрый день! Для себя решил открыть новый мир js. И этот мир создание небольной браузерной игры. Вообщем проблема в том, что не могу определить наложение двух объектов друг на друга. Нашел математическое решение этой задачи, но в моей ситуации решение работает не верно (возможно я что-то не так делаю). Вот решение этой радачи wiki
Вот небольшой эмулятор, который я написал для наглядности codepen. Немного поигравшись с перемешением объекта, можно увидеть, что алгоритм отрабатывает неверно.
Может быть кто-то сталкивался с подобной задачей, подскажите пожалуйста.
Все спасибо!

Rise 02.09.2017 03:53

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

jeysmook 04.09.2017 09:34

Rise,
Спасибо за подсказку, если у вас есть пример, могли бы вы скинуть его?

ksa 04.09.2017 10:24

Цитата:

Сообщение от jeysmook
если у вас есть пример, могли бы вы скинуть его?

Вот статейка с примерами
https://habrahabr.ru/post/128438/

jeysmook 04.09.2017 13:03

ksa,
Спасибо большое.

jeysmook 04.09.2017 17:07

Если кому интерестно, то вот написал небольшое приложение для того чтобы можно было создавать полигоны codepen(@deprecated) или github

Rasy 04.09.2017 18:06

jeysmook,
Найз ворк. Мэйк плагин энд пуш ту гит.

js-is-gay 07.09.2017 13:05

Столкновение фигур лучше опредеять с помощью векторов. Тот простой способ подойдет только при реализации чего-то наподобие рабочего стола на js

ksa 07.09.2017 13:40

Цитата:

Сообщение от js-is-gay
Столкновение фигур лучше опредеять с помощью векторов.

Лучше чем что? :)
Покажи пример определение столкновения с помощью векторов... Т.к. пока это только слова.

jeysmook 07.09.2017 17:20

js-is-gay,
Да, интерестно было бы глянуть.


Часовой пояс GMT +3, время: 11:37.