diff options
| author | Jeff Epler <jeff@adafruit.com> | 2020-07-29 11:19:02 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-29 11:19:02 -0500 |
| commit | 5cb7e64cc88656dec51d6aa06e92b0392a247f71 (patch) | |
| tree | 69b42d0311bc8230841c636159067d34acb09710 | |
| parent | fbc78972ebe547a26c39979b871fd704d25895e8 (diff) | |
| parent | 4c2d0c3dc5635a13e7151efe01b6634c0e375af5 (diff) | |
Merge pull request #3221 from WarriorOfWire/vectorio_topleft
use top-left heuristic for vectorio.Polygon
| -rw-r--r-- | shared-module/vectorio/Polygon.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/shared-module/vectorio/Polygon.c b/shared-module/vectorio/Polygon.c index c44c13fd7..e00a4696b 100644 --- a/shared-module/vectorio/Polygon.c +++ b/shared-module/vectorio/Polygon.c @@ -143,13 +143,13 @@ uint32_t common_hal_vectorio_polygon_get_pixel(void *obj, int16_t x, int16_t y) int y2 = self->points_list[i % self->len]; VECTORIO_POLYGON_DEBUG(" (%3d, %3d)}\n", x2, y2); if ( y1 <= y ) { - if ( y2 > y && line_side(x1, y1, x2, y2, x, y) > 0 ) { - // Wind up, point is to the right of the edge vector + if ( y2 > y && line_side(x1, y1, x2, y2, x, y) < 0 ) { + // Wind up, point is to the left of the edge vector ++winding_number; VECTORIO_POLYGON_DEBUG(" wind:%2d winding_number:%2d\n", 1, winding_number); } - } else if ( y2 <= y && line_side(x1, y1, x2, y2, x, y) < 0 ) { - // Wind down, point is to the left of the edge vector + } else if ( y2 <= y && line_side(x1, y1, x2, y2, x, y) > 0 ) { + // Wind down, point is to the right of the edge vector --winding_number; VECTORIO_POLYGON_DEBUG(" wind:%2d winding_number:%2d\n", -1, winding_number); } |
