Def<Circle2d> getCirclePlg ( CArrRef<Vector2d> poly ); Def<Ellipse2d> getEllipsePlg ( CArrRef<Vector2d> poly ); Def<Rectangle2d> getRectanglePlg ( CArrRef<Vector2d> poly ); Исходными данными для всех трёх функций является массив вершин многоугольника poly. Направление обхода вершин многоугольника произвольно. В дальнейшем направление обхода должно быть против часовой стрелки.
• Совмещение множества точек (point) и выпуклого многоугольника (vert) при помощи сдвига, без вращения.
Def<Vector2d> minMaxPointsConvexPolygonNR ( CCArrRef<Vector2d> & point, CCArrRef<Vector2d> & vert );
• Совмещение двух выпуклых многоугольников при помощи сдвига первого многоугольника.
Def<Vector2d> overlayConvexPolygonsNR ( CCArrRef<Vector2d> & vert1, CCArrRef<Vector2d> & vert2 );
• Совмещение множества точек (point) и выпуклого многоугольника (vert) при помощи вращения и сдвига.
Def<Conform2d> minMaxPointsConvexPolygon ( CCArrRef<Vector2d> & point, CCArrRef<Vector2d> & vert ); • Совмещение двух выпуклых многоугольников при помощи поворота и сдвига первого многоугольника: Def<Conform2d> overlayConvexPolygons ( CCArrRef<Vector2d> & vert1, CCArrRef<Vector2d> & vert2 ); В приложении DEMO можно посмотреть примеры использования этих функций. Описание классов Circle2d, Ellipse2d и Rectangle2d находится здесь.
Исходники находятся в approx2d.cpp Примеры использования всех этих функций можно посмотреть в приложении DEMO. Наверх |