diff options
| author | Alejandro Soto <alejandro@34project.org> | 2024-05-31 10:16:41 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2024-05-31 10:16:41 -0600 |
| commit | 6d593bf16416b453ecb3aa4fdca5c4205febc9ce (patch) | |
| tree | 4a83deb9c3eb04a53dcda344d64956b0d2e95e39 /tb/models/gfx_pineda.py | |
| parent | 6476845b669146d7c4184af9c96081dd2a760ab4 (diff) | |
tb/models: fix triangle winding in gfx_pineda
Diffstat (limited to '')
| -rw-r--r-- | tb/models/gfx_pineda.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tb/models/gfx_pineda.py b/tb/models/gfx_pineda.py index 0e673d7..7f8ccd3 100644 --- a/tb/models/gfx_pineda.py +++ b/tb/models/gfx_pineda.py @@ -35,6 +35,12 @@ def edge_fn(p, q, sx, sy): def raster(p0, p1, p2, msaa=True): global fb + # https://math.stackexchange.com/questions/1324179/how-to-tell-if-3-connected-points-are-connected-clockwise-or-counter-clockwise + A = p1[0][0] * p0[0][1] + p2[0][0] * p1[0][1] + p0[0][0] * p2[0][1] + B = p0[0][0] * p1[0][1] + p1[0][0] * p2[0][1] + p2[0][0] * p0[0][1] + if A > B: + p1, p2 = p2, p1 + minx, miny, maxx, maxy = bounding(p0, p1, p2) sx, sy = minx // 16 * 16, miny // 16 * 16 |
