From: <mj...@ga...> - 2005-04-20 19:57:16
|
Alan W. Irwin writes: > I confirm the bug with latest cvs version on my Debian testing platform. > Here is how I would summarize it. If all the polyline is inside the > viewport all is well and the same if all the polyline is outside the > viewport. (The entire viewport is filled if you use plwind(108., 109.0, > 108., 109.); below.) But there are problems (the outside of the polyline is > filled rather than the inside) if part of the polyline is outside and part > inside the viewport. Note, that when a polyline is clipped at the boundary > there are two choices for how it is reconnected. You can connect it the > short way along the viewport boundary or the long way around the viewport > boundary. For the example below the incorrect "short way" choice was made so > that the fill occurred on the wrong side of the clipped polyline. So I > think I know exactly what the problem is, but I have no idea where in the > code these viewport boundary/polyline clipping decisions are made. Could > somebody who knows where those decisions are made have a look to see if my > hypothesis is correct? That would be in plP_plfclp(), starting line 618 of src/plline.c. Lots of very painstakingly worked out logic, apparently still incomplete. No surprise, it's a very tough problem. Have fun. :) -- Maurice LeBrun mj...@ga... |