/
polytech_kolomna
/
aipackaging_math
Обзор
Документация
Войти
/
polytech_kolomna
/
aipackaging_math
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
intersections
include/mathutils.h
53 строки
2 KB
Olegh
lower case
28 окт 2025, 21:08
28 окт 2025, 21:08
037a99f
Код
Авторство
О чём код?
#ifndef MATHUTILS_H #define MATHUTILS_H #include <vector> #include <aipackagingmathexport.h> // Пространство математических констант namespace MathConstants { constexpr double PI = 3.141592653589793; constexpr double E = 2.718281828459045; constexpr double TOLERANCE_DOUBLE = 1e-9; } // ---------------------------------------------------------- // struct Point2D; struct Vector2D; class Rect2D; class Line2D; class Circle2D; // Производит сравнение двух переменных типа double AIPACKAGING_MATHLIB_API bool doubleEQ(double arg1, double arg2, double epsilon = MathConstants::TOLERANCE_DOUBLE); // Конвертирует градусы в радианы AIPACKAGING_MATHLIB_API double degreesToRadians(double degrees); // Высчитывает угол между векторами AIPACKAGING_MATHLIB_API double calculateAngle(const Vector2D& v1, const Vector2D& v2); // Алгоритм вычисляет расстояние между двумя точками AIPACKAGING_MATHLIB_API double distance(const Point2D& p1, const Point2D& p2); // Алгоритм вычисляет расстояние между точкой и линией AIPACKAGING_MATHLIB_API double distance(const Point2D& p1, const Line2D& line); // Алгоритм вычисляет расстояние между точкой и окружностью AIPACKAGING_MATHLIB_API double distance(const Point2D& p1, const Circle2D& circle); // Пересечение отрезка с окружностью AIPACKAGING_MATHLIB_API bool segmentIntersectsCircle(const Point2D& p1, const Point2D& p2, const Point2D& centerCircle, double radius); // Вхождение точки в прямоугольник AIPACKAGING_MATHLIB_API bool pointInBox(const Point2D& point, const Rect2D& box); // Вычисление центральной точки коллекции прямоугольников AIPACKAGING_MATHLIB_API Point2D calculateCompositeCenter(const std::vector<Rect2D>& rectangles); #endif