# DotsToSirface (Qt 5.11) Демонстрационная программа на Qt 5.11 C++, которая: - принимает массив 3D-точек `QVector`; - строит массив треугольников `QVector`; - визуализирует точки и полученную треугольную поверхность. ## Вход/выход API `src/geometry/surface_reconstruction.h`: - `struct Point3f { float x, y, z; };` - `struct Triangle { int i0, i1, i2; };` - `QVector buildSurfaceTriangles(const QVector& points);` `Triangle` хранит индексы вершин в исходном массиве `points`. ## Как это работает Реализация использует инкрементальный `Convex Hull 3D`: - удаление дубликатов точек (epsilon-сравнение); - поиск стартового тетраэдра; - поочередное добавление точек с пересчетом видимых граней и горизонта; - поддержание ориентированных наружу треугольников. ## Ограничения Текущая реализация строит **выпуклую оболочку** облака точек. Для невыпуклых объектов и детальной реконструкции произвольной поверхности нужны более сложные алгоритмы (например, alpha-shapes, Poisson reconstruction и т.п.). ## Сборка Пример для Qt 5.11: ```bash qmake DotsToSirface.pro make ``` Для Windows/MSVC используйте соответствующий `nmake`/`jom`. ## Демо При запуске приложение: - генерирует тестовое облако точек (приближенная сфера с небольшим шумом); - строит триангуляцию; - показывает статистику: количество точек, количество треугольников и время построения; - отображает сцену в `QOpenGLWidget` (ЛКМ - вращение, колесо - зум).