Plot poly code cleaning. Suppress erreurs for malformed polygons (< 2 corners)

This commit is contained in:
jean-pierre charras
2011-04-20 10:13:21 +02:00
parent dcccaee2aa
commit c89070da83
10 changed files with 230 additions and 232 deletions
+40 -34
View File
@@ -100,47 +100,53 @@ double PLOTTER::user_to_device_size( double size )
void PLOTTER::center_square( const wxPoint& position, int diametre, FILL_T fill )
{
int radius = wxRound( diametre / 2.8284 );
int coord[10] =
{
position.x + radius, position.y + radius,
position.x + radius, position.y - radius,
position.x - radius, position.y - radius,
position.x - radius, position.y + radius,
position.x + radius, position.y + radius
};
static std::vector< wxPoint > corner_list;
corner_list.clear();
wxPoint corner;
corner.x = position.x + radius;
corner.y = position.y + radius;
corner_list.push_back( corner );
corner.x = position.x + radius;
corner.y = position.y - radius;
corner_list.push_back( corner );
corner.x = position.x - radius;
corner.y = position.y - radius;
corner_list.push_back( corner );
corner.x = position.x - radius;
corner.y = position.y + radius;
corner_list.push_back( corner );
corner.x = position.x + radius;
corner.y = position.y + radius;
corner_list.push_back( corner );
PlotPoly( corner_list, fill );
if( fill )
{
poly( 4, coord, fill );
}
else
{
poly( 5, coord, fill );
}
}
void PLOTTER::center_lozenge( const wxPoint& position, int diametre,
FILL_T fill )
void PLOTTER::center_lozenge( const wxPoint& position, int diametre, FILL_T fill )
{
int radius = diametre / 2;
int coord[10] =
{
position.x, position.y + radius,
position.x + radius, position.y,
position.x, position.y - radius,
position.x - radius, position.y,
position.x, position.y + radius,
};
static std::vector< wxPoint > corner_list;
corner_list.clear();
wxPoint corner;
corner.x = position.x;
corner.y = position.y + radius;
corner_list.push_back( corner );
corner.x = position.x + radius;
corner.y = position.y,
corner_list.push_back( corner );
corner.x = position.x;
corner.y = position.y - radius;
corner_list.push_back( corner );
corner.x = position.x - radius;
corner.y = position.y;
corner_list.push_back( corner );
corner.x = position.x;
corner.y = position.y + radius;
corner_list.push_back( corner );
if( fill )
{
poly( 4, coord, fill );
}
else
{
poly( 5, coord, fill );
}
PlotPoly( corner_list, fill );
}