pcb

DSP dances

Bug #699209 reported by Ineiev
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
pcb
Fix Released
High
Unassigned

Bug Description

Diagonal squared pads approaching to square (that is those whose width is much more than the distance between their endpoints, as in 1206.fp) are shown in a delightful way. this is because round-off errors are multiplied when drawing the pad as a line. this can be seen when changing zoom in gtk gui (I think in lesstif, too). I dare not bother you with my explanations why this effect is not considerable for pads with rounded ends.

Gerber output is not affected, because such lines are drawn as polygons and the coordinates are rounded after computing the polygon vertices. PS output is not affected, because the coordinates are not rounded at all.

In the same piece of code (draw.c) there is another gorgeous thing. it is how the diagonal pads are drawn in thinline mode. square pads are shown as not diagonal; and it is almost inexpressible how rounded pads are drawn.

The patch applied eradicates those things. squared diagonal pads are drawn as polygons; thinline code for rouded pads is adjusted, too.

I pray dear developers don't fix this. PCB will not be PCB without it. your humble servant trusts your wisdom.

Tags: sf-bugs
Revision history for this message
Ineiev (ineiev) wrote :
Revision history for this message
Ineiev (ineiev) wrote :

Alas! somebody fixed thinline draw. fortunately, "solid line" squared diagonal pads dance as they did.

dspdances.bis.patch fixes the rest. I also changed thinline mode drawing for squared pads because the patches' get_pad_polygon() should be faster (single sqrt() vs atan2()+sin()+cos()).

Revision history for this message
Ineiev (ineiev) wrote :

I'm sorry. of course, there is no need to check if the pad is squared in the last set_line_cap() call.

dspdances.ter.patch attached.

Revision history for this message
Ineiev (ineiev) wrote :

updated to current CVS state;
the speed improved in some cases

Revision history for this message
Ineiev (ineiev) wrote :
Revision history for this message
Ineiev (ineiev) wrote :

updated; fixed mask drawing

Revision history for this message
Traumflug (mah-jump-ing) wrote :

Hmpf. Launchpad swallowed my text again.

Short version:

- Tried the provided layout and couldn't find anything unusual.

- Tried to apply the patch, but it's (no surprise) outdated beyond recognition.

Changed in pcb:
status: New → Won't Fix
Revision history for this message
Traumflug (mah-jump-ing) wrote :

Got a private mail:

> Awesome! people still recall me.
>
> I attach a rebased patch.
>
> Both lesstif (--with-gui=lesstif) and plain gtk (--with-gui=gtk --disable-gl)
> are still affected. gtk-gl is not affected because it feeds its backend
> with floats rather than ints (not an option for lesstif and gtk).

Changed in pcb:
status: Won't Fix → In Progress
Revision history for this message
Traumflug (mah-jump-ing) wrote :

It took me a while to see what's going on. When one zooms in closely, the square pad suddenly starts to rotate. Is this the bug we're talking about?

Revision history for this message
Traumflug (mah-jump-ing) wrote :

The new patch applied flawlessly and this unexpected rotation is gone. Excellent! Pushed directly to master as the fix is very apparent. If there's something missing, please tell us.

Changed in pcb:
importance: Low → High
status: In Progress → Fix Committed
Changed in pcb:
milestone: none → next-bug-release
assignee: nobody → Traumflug (mah-jump-ing)
Revision history for this message
Traumflug (mah-jump-ing) wrote :

No support for admins actively blasting developers away.

Changed in pcb:
assignee: Traumflug (mah-jump-ing) → nobody
Traumflug (mah-jump-ing)
Changed in geda-project:
importance: Undecided → High
status: New → Fix Released
Changed in pcb:
assignee: nobody → Traumflug (mah-jump-ing)
Revision history for this message
Traumflug (mah-jump-ing) wrote :

Please don't assign other people than yourself to a bug.

Changed in pcb:
assignee: Traumflug (mah-jump-ing) → nobody
Changed in pcb:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.