to false). apparently illustrator does exactly the same kind of errors in its offsets, so i suppose they have taken the same method.
You used a constant value in the call to Coalesce in sp-offset. I changed that to:
SPItem *item = &(shape->item); NR::Rect bbox = sp_item_bbox_desktop (item); gdouble size = L2(bbox.dimensions()); gdouble exp = NR::expansion(NR::Matrix(item->transform)); if (exp != 0) size /= exp; orig->Coalesce (size * 0.001);
I.e. I coalesce by the 0.001 of the item's size (divided by transform, because offset works with the original untransformed path). And it now works perfectly for most sizes! Only in the smallest size, at 256x zoom, there are noticeable distortions resembling pixelation, apparently because of a lack of precision somewhere causing nodes to "snap to grid". However, this is a much smaller annoyance than before. The version with my change is committed.
Another change I did was reducing the minimum allowed radius from 0.25 to 0.01:
if (fabs (offset->rad) < 0.01) offset->rad = (offset->rad < 0) ? -0.01 : 0.01;
because with 0.25, there was a noticeable "jump" around 0 for small objects.
_________________________________________________________________ Add photos to your e-mail with MSN Premium. Get 2 months FREE* http://join.msn.com/?pgmarket=en-ca&page=byoa/prem&xAPID=1994&DI...
participants (1)
-
bulia byak