README.md

    Figuvam - Фигуру Вам :)

    Наивная демка-попытка опеределять нарисованные 2D фигуры, просто через их сравнение.

    img

    Зависимости

    sudo apt install love 
    

    Запуск

    love main.lua
    

    Или

    love figuvam.love
    

    Или

    chmod +x figuvam.AppImage
    ./figuvam.AppImage
    

    По мотивам https://www.linux.org.ru/forum/development/17942895?cid=17943302


    • Рисуется произвольная фигура
      • Над ней описывается прямоугольник
    • Берётся фигура шаблон (шаблон это определяемая фигура)
      • Его грани подразделяются
      • Вписывается в прямоугольник фигуры
        • поворачивается
        • Перемещается в центр
        • масштабируется
      • На каждом повороте шаблона проверяется
        • входят ли координаты точек фигуры в координаты точек шаблона

    Вращаясь в области прямоугольника фигуры, подходящий шаблон в определённой позиции вращения становится “похож” на фиругу и часто пересекается с ней

    Это работает, но есть как ложные срабатывания, при маленьком размере начальной фигуры (можно обойти увеличивая масштаб произвольной фигуры, но уже лень), и нужно много шаблонов, так как пропорциональное вращение шаблона, может быть не пропорционально размеру произвольной фигуры, например короткий и длинный прямоугольник.

    Но если нужно в данных в виде точек находить точные совпадения с учётом произвольного поворота, такой топорный метод может быть полезен, например если в игре игроку даётся возможность правильно собрать некую фигуру, но у игрока есть возможность строить её с произвольным поворотом. В таком случае вполне можно применять, реализовав игровую механику на основе этого, головоломки там например. При этом фигура может быть сложной.

    Оставлю тут, как есть.

    Описание

    Демка на Love2D для сравнения фигур

    Релизы
    Figuvam 0.1.0 2025-04-18
    Конвейеры
    0 успешных
    0 с ошибкой