Polygon fill algo?
ambassador at fourthworld.com
Tue Feb 16 03:20:35 EST 2021
Super helpful, Mark. Thank you.
I can better understand how the existing modes work, but I need
something a little different.
Imagine if we had a mode where each successive set of points is rendered
so it completely paints over anything rendered before it, vertices and
all - e.g.:
set the fillmode to layered --?
Fourth World Systems
Mark Waddingham wrote:
> On 2021-02-16 05:55, Richard Gaskin via use-livecode wrote:
>> My expectation was almost beyond anything reasonable, but it would
>> seem useful if there was some way to make it happen: imagine if each
>> segment within a list of discontiguous points was rendered as though
>> it's a separate object, back to front.
>> It's not going to kill me to use separate graphics to hide the
>> portions of the vertices I need covered, but it sure would have been
>> nifty if I'd found a way to have a single poly object render as though
>> it were many.
> So the even-odd fill rule will not give you what you want - overlapping
> regions alternate.
> The non-zero fill rule can give you what you want - but you need to make
> sure that all your sub-polygons go 'in the same direction'. (NB: Fixed
> width font ASCII art follows):
> These two overlapping rects both go clock-wise so everything is filled.
> |-- |---|...v
> The left rect goes anti-clockwise and the right rect goes clockwise:
> v...| |...|
> |...| |...|
> |-- |---|...v
> - the non-zero winding rule works by starting on the left of each
> scanline and scanning to the right
> - there is a winding counter which starts at 0.
> - at any pixel, if the winding counter is non-zero the pixel is
> - if an edge is crossed which goes 'down', the winding counter is
> - if an edge is crossed which goes 'up', the winding counter is
> Hope this helps!
> Warmest Regards,
More information about the use-livecode