From 7512b5fdde3b48845b414d94c6e0cb09c653f3c6 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Tue, 25 Nov 2014 18:47:19 +0100 Subject: [PATCH] Fix determining bounding box of the edge collection in FillEdgeCollection(). There is necessary to account also x-ccordinate of the end of the edge when determining bounding box of the edge collection. --- modules/core/src/drawing.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/core/src/drawing.cpp b/modules/core/src/drawing.cpp index 66778797d1..4af39347fd 100644 --- a/modules/core/src/drawing.cpp +++ b/modules/core/src/drawing.cpp @@ -1271,10 +1271,15 @@ FillEdgeCollection( Mat& img, vector& edges, const void* color ) { PolyEdge& e1 = edges[i]; assert( e1.y0 < e1.y1 ); + // Determine x-coordinate of the end of the edge. + // (This is not necessary x-coordinate of any vertex in the array.) + int x1 = e1.x + (e1.y1 - e1.y0) * e1.dx; y_min = std::min( y_min, e1.y0 ); y_max = std::max( y_max, e1.y1 ); x_min = std::min( x_min, e1.x ); x_max = std::max( x_max, e1.x ); + x_min = std::min( x_min, x1 ); + x_max = std::max( x_max, x1 ); } if( y_max < 0 || y_min >= size.height || x_max < 0 || x_min >= (size.width<