On Tue, Feb 17, 2009 at 09:08:33PM +0000, Peter Clifton wrote: > > > > I think the only straightforward way to fix the self-intersecting arc is > > to build it internally from two parts and union them. Might be slow on > > teardrop'd boards. > > Probably just need some simple geometry to work out if it would > self-intersect or not fn(radius, width, angle), and do something > different with those cases which do. Unfortunately, there is (of > course), a whole family of potential intersections, so its not quite as > simple as just specifying an outer circle poly, with a circular hole.
You just build it as two halves and use the polygon code to union it. The math to make the self-intersecting arc "by hand" is going to end up being a special case of exactly what the polygon code will do. Your fn() shouldn't be too bad, I think it's just "find the coordinates of the arc endpoints and see if they're <thickness apart". > Ben, did you figure out what specifically causes co-incident lines to > cause grief? My understanding of the code was that they shouldn't cause > problems. (I'd love to see any simple test-cases you have where they > do). It usually boils down to numerical instability in the polygon code. I may have an example. I save all the strange boards people send in with bug reports to use as regression tests. -- Ben Jackson AD7GD <b...@ben.com> http://www.ben.com/ _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user