Coder Social home page Coder Social logo

topomatic-test-task's Introduction

Задание

  1. Построение многоугольника, полученного пересечением двух исходных.
  2. Построение многоугольника, полученного объединением двух исходных.
  3. Определение площади произвольного многоугольника.

Билд

Билд приложения загружен на simmer.io https://simmer.io/@Ilya_Leontev/topomatic-test-task

Дополнения

Задания 1-2: Файл в проекте: PolygonClippingAlgorithm.cs

Задание 3: Использовалась формула площади Гаусса https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%BF%D0%BB%D0%BE%D1%89%D0%B0%D0%B4%D0%B8_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0 Файл в проекте: GeometryUtility.cs метод PolygonArea()

P.S.

  1. Алгоритм поддерживает Union и Intersection операции, но так же может считать и другие операции, такие как Difference, Xor, при дописании фильтра (пример в конце PolygonClippingAlgorithm.cs)
  2. Обрабатывает случаи с совпадающими сегментами (идеальное перекрытие, ребро на ребре, общие вершины, один внутри другого и т.д.)
  3. Касание вершины одного полгона о ребро или вершину другого полигона считается за пересечение
  4. Ввод вершин может быть как по часовой, так и против часовой стрелки
  5. При выборе опции Intersection, меньший полигон внутри большего полигона не является пересечением
  6. Для визуализации использован движок Unity

JtwZzpRQ44

topomatic-test-task's People

Contributors

neerex avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.