Skip to content

Instantly share code, notes, and snippets.

@xanf
Last active April 8, 2019 11:41
Show Gist options
  • Star 14 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save xanf/6ac4646ba2f6d781099b to your computer and use it in GitHub Desktop.
Save xanf/6ac4646ba2f6d781099b to your computer and use it in GitHub Desktop.

Многоугольники

TL;DR

Реализуйте функцию intersect, которая принимает на вход два многоугольника и возвращает массив многоугольников - их пересечение, либо пустой массив, если многоугольники не пересекаются.

Детали реализации

  • Использовать сторонние библиотеки запрещено. Решение должно быть выполненно на чистом JavaScript
  • Многоугольник задается в виде массива объектов, каждый из которых содержит поля x и y - координаты точки, входящей в многоугольник
  • Вы можете предполагать, что многоугольники на входе корректны, содержат от 3 до 100 вершин, координата каждой вершины находится в диапазоне от [0, 0] до [400, 400]
  • Касание многоугольников не считается пересечением
  • Если площадь одного из многоугольников пересечения менее 0.0001 - такой многоугольник должен быть исключен из массива результатов
  • Ваш репозиторий с решением должен содержать файл solution.js, который размещает в глобальной области видимости функцию intersect. Вы можете взять за основу шаблон проекта, который содержит вспомогательные функции для визуализации Вашего результата
  • Наличие unit-тестов будет плюсом
@Kotuhan
Copy link

Kotuhan commented Apr 5, 2016

Уточните, пожалуйста, что имеется ввиду в предложении "Вы можете предполагать, что многоугольники на входе корректны" под словом "корректны"?

@termosa
Copy link

termosa commented Apr 7, 2016

@Kotuhan думаю, имеется ввиду что все переданные значения будут валидны: не нужно проверять переданы ли в функцию позиция вершины или имя актрисы.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment