RE: [LIBART] problem with art_rgb_svp_alpha()



Thank you so much for this tip!  I would have never thought
of using art_vpath_perturb()!

art_vpath_perturb() got me out of the infinite loop, which
was a good thing.  However, it did not fix another problem
I was having, where I would get blocks of filled-in pixels
where they didn't belong.

This is a bit hard to explain, but what I was seeing was
the desired vector path and a solid block of filled pixels
running from the right-hand edge of the vector path to the
right-most edge of the image.

I was also getting a lot of colinear warnings.  A _lot_ of
our handwritten data is colinear, due to the low sampling
resolution of some of our input devices.

I decided to write my own vpath_perturb() function, which
uses a larger perturbation value (2e-2 instead of 2e-3),
and all of my problems seem to have gone away!

Thanks for pointing me in the right direction!

Jason Priebe
Mi-Co
http://www.mi-corporation.com/ 

> -----Original Message-----
> From: libart-admin gnome org [mailto:libart-admin gnome org]On Behalf Of
> Lauris Kaplinski
> Sent: Tuesday, March 06, 2001 5:45 PM
> To: Jason Priebe
> Cc: libart gnome org
> Subject: RE: [LIBART] problem with art_rgb_svp_alpha()
> 
> 
> Hello!
> 
> Doy you call art_vpath_perturb?
> It distorts points by microscopic distances, thus probably 
> killing many numerical
> stability problems. It helped me - and from your point list I 
> saw, you have
> colienar segments...
> 
> Lauris Kaplinski
> 
> On 06 Mar 2001 07:56:51 -0500, Jason Priebe wrote:
> > > > I'm generating an svp from a set of 23 points.  I pass
> > > > that into art_rgb_svp_alpha(), and it hangs.  I've used
> > > > gdb to trace it to line 283 in  art_svp_render_aa.c.
> > > 
> > > How exactly do you generate the svp ?
> > > The correct way is to build a vpath and either
> > > art_svp_vpath_stroke or art_svp_from_vpath it.
> > > For the latter, the surface (I assume the vpath is closed) outline
> > > must be given counter-clockwise.
> > 
> > Sorry -- I should have been more specific.  I'm taking the
> > point list that I sent in my previous message and building
> > a vpath from it.  Then I call
> > 
> > art_svp_vpath_stroke(vpath, ART_PATH_STROKE_JOIN_ROUND,
> >                                         ART_PATH_STROKE_CAP_ROUND,
> >                                         STROKE_WIDTH,
> >                                         0.0,
> >                                         0.25);
> > 
> > The resulting svp is passed to art_rgb_svp_alpha().
> > 
> > The path is not closed, and the points are completely arbitrary;
> > the data comes from handwritten strokes.  Are there preconditions
> > that must be met in order to use art_svp_vpath_stroke()?
> > 
> > Jason Priebe
> > Mi-Co
> > http://www.mi-corporation.com/ 
> > 
> 
> 
> _______________________________________________
> Libart mailing list
> Libart gnome org
> http://mail.gnome.org/mailman/listinfo/libart
> 
BEGIN:VCARD
VERSION:2.1
N:Priebe;Jason
FN:Jason Priebe
ORG:Mi-Co
TITLE:Director of Internet Services
TEL;WORK;VOICE:(919) 485-4819 x615
TEL;HOME;VOICE:(919) 838-0630
TEL;CELL;VOICE:(919) 523-6300
TEL;WORK;FAX:(919) 990-8561
ADR;WORK:;;2 Davis Drive;Research Triangle Park;North Carolina;27709;United States of America
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:2 Davis Drive=0D=0AResearch Triangle Park, North Carolina 27709=0D=0AUnited =
States of America
EMAIL;PREF;INTERNET:priebe mi-corporation com
EMAIL;INTERNET:9195236300 dpcs mobile att net
EMAIL;INTERNET:jason_priebe yahoo com
REV:20010209T141307Z
END:VCARD


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]