Set the polygon fill rule
#include <gf/gf.h> void gf_context_set_polyfill( gf_context_t context, int polyfill );
gf
This function replaces the polygon fill rule for the specified draw context. The polygon fill rule determines how the fill for polygons is rendered. If you're only drawing simple, convex polygons, you can optimize rendering speed by setting the fill rule to GF_CONTEXT_POLYFILL_CONVEX.
By default, polygons that overlap themselves are filled using the so-called even-odd rule (GF_CONTEXT_POLYFILL_EVENODD): if an area overlaps an odd number of times, it isn't filled. Another way of looking at this is to draw a horizontal line across the polygon. As you travel along this line and cross the first line, you're inside the polygon; as you cross the second line, you're outside. As an example, consider a simple polygon:
This rule can be extended for more complicated polygons:
If you want a polygon that overlaps itself to be completely filled in all regions within its boundary, you can set the fill rule to GF_CONTEXT_POLYFILL_NONZERO.
QNX Graphics Framework
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
gf_context_set_linejoin(), gf_draw_poly_fill()
“Drawing lines and polygons” in the Basic Drawing chapter