On Fri, Jan 29, 2010 at 6:28 AM, Peter Clifton <[email protected]> wrote: > On Thu, 2010-01-28 at 19:05 -0600, Mark Rages wrote: >> On Thu, Jan 28, 2010 at 3:50 PM, DJ Delorie <[email protected]> wrote: >> > >> >> I was afraid of that... >> > >> > :-) >> > >> >> So I guess I need to change the Arc object to store the angles in >> floating-point and bump the file format version. >> >> Any objections? It looks like a fair amount of work, including the >> dark and foreboding "puller.c". > > Last time we discussed this, there was some comment on what to use. > Fixed point seems appropriate, since it retains precision most > uniformly. >
Ok, what precision do we need? A reasonable value would be to have the uncertainty of the largest radius arc to be equal to the precision of linear measurements. Assuming: largest arc is 24 inches, and the desired precision 1e-5 inches. Then the precision of the smallest angle is (1e-5)/24 radians or 2.38*10-5 degrees. To be safe, the new units should be millionths of a degree, so one revolution is 360000000. Sounds good? Or a double-precision floating-point would maintain more than sufficient accuracy over the (0,360] range. > Other alternatives included adding an additional arc representation, > defined by end-points in the usual PCB coordinates, and a third > parameter, either a radius, curvature or a third point on the arc. (for > example). These are all equivalent within their precisions, right? I think I'll stick with what we use now because dxflib seems to work this way (except using the normal X-Y directions) and we've pretty much got the geometry worked out for this. No need to open a new can of worms. Regards, Mark markra...@gmail -- Mark Rages, Engineer Midwest Telecine LLC [email protected] _______________________________________________ geda-user mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

