C++ : Представляем открытую библиотеку 2D-геометрии
00:00 Введение в библиотеку геометрии • Создана новая библиотека геометрии olc util geometry two d. • Цель библиотеки — выполнять геометрические анализы между двумерными фигурами. • Примеры анализов: пересечение треугольника с точкой и кругом, точки пересечения, содержание окружности прямыми линиями, отражение лучей от фигур. 00:24 История создания библиотеки • Автор обнаружил, что часто использует фрагменты кода, и решил создать библиотеку. • Библиотека быстро выросла и потребовала помощи сообщества. • Сообщество на сервере one lone discord оказало значительную поддержку. 01:07 Начало использования библиотеки • Демонстрация включения библиотеки в программу на C++. • Необходимость установки C++ версии 20 и использования функции using namespace. • Библиотека geometry two d может использоваться автономно. 01:56 Работа с геометрическими примитивами • Пример работы с точкой и кругом. • Возможность создания фигур пользователем. • Взаимодействие библиотеки с IntelliSense в Visual Studio. 02:52 Свойства и функции круга • Свойства круга: площадь, длина окружности, периметр. • Функция contains для проверки содержания точки в круге. 03:39 Перегрузки функций • Функция contains имеет 25 перегрузок. • Пример проверки содержания прямоугольника в круге. 04:48 Перекрытие фигур • Проверка перекрытия круга и прямоугольника. • Функциональная матрица в заголовочном файле. 06:14 Дополнительные функции • Функция closest для определения ближайшей точки. • Функция overlaps для проверки перекрытия. • Функция intersects для возврата вектора точек пересечения. 06:43 Интеграция с игровым движком • Переопределение реализации vector two d в библиотеке geometry two d. • Простота переноса кода между библиотеками. 08:29 Создание приложения • Наследование класса application от игрового движка pixel. • Визуализация круга и прямоугольника на экране. 10:00 Тестирование пересечения фигур • Проверка пересечения прямоугольника с кругом с помощью функции overlaps. • Изменение цвета прямоугольника в зависимости от результата теста. 10:41 Использование функции contains • Изменение цвета прямоугольника на красный, если круг полностью находится внутри прямоугольника. 11:11 Введение в библиотеку • Библиотека стремится к математической точности, а не к точности в пиксельном пространстве. • Цель визуализации — изучение функции пересечений. 11:44 Функция пересечений • Функция пересечений возвращает вектор точек пересечения границ фигур. • Вектор может быть пустым, если фигуры не пересекаются. • Точки пересечения рисуются маленькими кругами синего цвета. 12:17 Изменение формы мыши • Форма мыши изменяется с окружности на отрезок прямой. • Отрезок линии пересекается с границами прямоугольника. 13:06 Лучи и их использование • Лучи — полезный геометрический примитив для двумерных игр и приложений. • Создание луча, начинающегося в левом верхнем углу экрана и направленного в сторону курсора мыши. • Нормализация вектора направления для луча. 14:31 Взаимодействие лучей с фигурами • Проверка пересечений между лучом и прямоугольником. • Проекция круга вдоль луча на прямоугольник для оценки вероятности столкновения. 16:22 Отражение лучей • Отражение луча от прямоугольника. • Проверка необязательного значения функции отражения. • Рисование отражённого луча тёмно-зелёным цветом. 17:15 Возможности библиотеки • Библиотека позволяет анализировать взаимодействие различных форм. • Работа над библиотекой продолжается, последняя версия доступна на GitHub. 17:39 Открытый исходный код • Библиотека OLC Util Geometry 2D — проект с открытым исходным кодом. • Репозиторий открыт для запросов на извлечение, дополнений и тестирования. • Не реализованы функции ближайшей точки и проецирования для большинства фигур. 18:56 Тестирование библиотеки • Тестовое приложение использует продвинутый C++ для демонстрации взаимодействия фигур. • Приложение можно скомпилировать и запустить в браузере с помощью Inscripton. • Возможность выбора фигур и наблюдения за их взаимодействием. 20:24 Заключение • Библиотека OLC Util Geometry 2D находится в стадии разработки. • Призыв к участию в разработке на GitHub и сервере Discord. • Приглашение подписаться на канал и оставить обратную связь.
00:00 Введение в библиотеку геометрии • Создана новая библиотека геометрии olc util geometry two d. • Цель библиотеки — выполнять геометрические анализы между двумерными фигурами. • Примеры анализов: пересечение треугольника с точкой и кругом, точки пересечения, содержание окружности прямыми линиями, отражение лучей от фигур. 00:24 История создания библиотеки • Автор обнаружил, что часто использует фрагменты кода, и решил создать библиотеку. • Библиотека быстро выросла и потребовала помощи сообщества. • Сообщество на сервере one lone discord оказало значительную поддержку. 01:07 Начало использования библиотеки • Демонстрация включения библиотеки в программу на C++. • Необходимость установки C++ версии 20 и использования функции using namespace. • Библиотека geometry two d может использоваться автономно. 01:56 Работа с геометрическими примитивами • Пример работы с точкой и кругом. • Возможность создания фигур пользователем. • Взаимодействие библиотеки с IntelliSense в Visual Studio. 02:52 Свойства и функции круга • Свойства круга: площадь, длина окружности, периметр. • Функция contains для проверки содержания точки в круге. 03:39 Перегрузки функций • Функция contains имеет 25 перегрузок. • Пример проверки содержания прямоугольника в круге. 04:48 Перекрытие фигур • Проверка перекрытия круга и прямоугольника. • Функциональная матрица в заголовочном файле. 06:14 Дополнительные функции • Функция closest для определения ближайшей точки. • Функция overlaps для проверки перекрытия. • Функция intersects для возврата вектора точек пересечения. 06:43 Интеграция с игровым движком • Переопределение реализации vector two d в библиотеке geometry two d. • Простота переноса кода между библиотеками. 08:29 Создание приложения • Наследование класса application от игрового движка pixel. • Визуализация круга и прямоугольника на экране. 10:00 Тестирование пересечения фигур • Проверка пересечения прямоугольника с кругом с помощью функции overlaps. • Изменение цвета прямоугольника в зависимости от результата теста. 10:41 Использование функции contains • Изменение цвета прямоугольника на красный, если круг полностью находится внутри прямоугольника. 11:11 Введение в библиотеку • Библиотека стремится к математической точности, а не к точности в пиксельном пространстве. • Цель визуализации — изучение функции пересечений. 11:44 Функция пересечений • Функция пересечений возвращает вектор точек пересечения границ фигур. • Вектор может быть пустым, если фигуры не пересекаются. • Точки пересечения рисуются маленькими кругами синего цвета. 12:17 Изменение формы мыши • Форма мыши изменяется с окружности на отрезок прямой. • Отрезок линии пересекается с границами прямоугольника. 13:06 Лучи и их использование • Лучи — полезный геометрический примитив для двумерных игр и приложений. • Создание луча, начинающегося в левом верхнем углу экрана и направленного в сторону курсора мыши. • Нормализация вектора направления для луча. 14:31 Взаимодействие лучей с фигурами • Проверка пересечений между лучом и прямоугольником. • Проекция круга вдоль луча на прямоугольник для оценки вероятности столкновения. 16:22 Отражение лучей • Отражение луча от прямоугольника. • Проверка необязательного значения функции отражения. • Рисование отражённого луча тёмно-зелёным цветом. 17:15 Возможности библиотеки • Библиотека позволяет анализировать взаимодействие различных форм. • Работа над библиотекой продолжается, последняя версия доступна на GitHub. 17:39 Открытый исходный код • Библиотека OLC Util Geometry 2D — проект с открытым исходным кодом. • Репозиторий открыт для запросов на извлечение, дополнений и тестирования. • Не реализованы функции ближайшей точки и проецирования для большинства фигур. 18:56 Тестирование библиотеки • Тестовое приложение использует продвинутый C++ для демонстрации взаимодействия фигур. • Приложение можно скомпилировать и запустить в браузере с помощью Inscripton. • Возможность выбора фигур и наблюдения за их взаимодействием. 20:24 Заключение • Библиотека OLC Util Geometry 2D находится в стадии разработки. • Призыв к участию в разработке на GitHub и сервере Discord. • Приглашение подписаться на канал и оставить обратную связь.
