On Thu, 2010-03-25 at 06:34 +0000, Ineiev wrote: > On 3/23/10, DJ Delorie <d...@delorie.com> wrote: > > > > Looks like a fundamental design issue. We use the X layer to draw > > lines, which includes pads, but with the tiny offsets in the x,y > > points, we end up passing two points to the X layer that have the same > > coordinates, so it draws a zero-angle line. If you zoom in far > > enough, eventually rotates the pad on the screen. > > > > To get this right, we'd have to somehow calculate when X is going to > > do the wrong thing based on our scaling, and draw those "lines" as > > polygons instead, so that we can do the math with more precision. > > I thought it was a very well-known feature; it was reported in 2007 > (http://sourceforge.net/tracker/?func=detail&aid=1800872&group_id=73743&atid=538811); > I support a patch for rectifying it here: > http://repo.or.cz/w/geda-pcb/dti.git/shortlog/refs/heads/ineiev-dspdances.squashed
Patch looks good, but I'm not sure it is necessary to pass 5 vertices (manually closing the polygon). I think it would be fair to assume the polygon is closed, and this is what (at least the GTK HID) does - so it would be more appropriate to pass 4 vertices. I note that (guessing from the context when viewing the patch), the thindraw is manually drawn line by line done in DrawPadLowLevel, so there is no worry that the gdk_draw_polygon (used in the HID->fill_polygon) call, does not appear to close the shape if it were called to draw a non-filled "polygon". -- Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!) Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me) _______________________________________________ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user