W3C home > Mailing lists > Public > www-svg@w3.org > May 2002

RE: fill-rule problem ..

From: Doug Schepers <doug@schepers.cc>
Date: Fri, 3 May 2002 17:22:23 -0400
To: <www-svg@w3.org>
Message-ID: <AMEGKJJNEDNKEEMEHFOFKEGBDCAA.doug@schepers.cc>
It occurred to me that it might be useful to be able to specify more than
one color for fill, to alternate the color according to different
fill-rules. For instance:

<polygon points="100,20 165,196 26,87 176,87 42,198 " style='stroke:blue;
fill:yellow,blue; fill-rule:evenodd;'/>

would give a star with yellow arms and a blue center.

This might also be used to completly fill an enclosed area, by specifying
the same color twice.

Just an idea-
-Doug


> -----Original Message-----
> From: www-svg-request@w3.org [mailto:www-svg-request@w3.org]On Behalf Of
> Goessner / MecXpert
> Sent: Friday, May 03, 2002 4:46 AM
> To: www-svg@w3.org
> Subject: Re: fill-rule problem ..
>
>
> A solution to this problem might be an additional fill-rule, perhaps
>
> fill-rule="always"
>
> --
> stefan
>
>
>
> > i simplified the path to a square with a "V" in it.
> >
> > <svg width="300" height="200">
> >   <path id="A" transform="translate(20,20)" stroke-width="2"
> stroke="blue"
> > fill="lightgray" fill-rule="nonzero"
> >         d="M0,0 H100 V100 H0 Z M10,50 50,90 90,50" />  <!-- clockwise /
> > counterclockwise -->
> >   <path id="B" transform="translate(140,20)" stroke-width="2"
> stroke="blue"
> > fill="lightgray" fill-rule="nonzero"
> >         d="M0,0 H100 V100 H0 Z M90,50 50,90 10,50" />  <!-- clockwise /
> > clockwise -->
> > </svg>
> >
> > 1) if a (sub)path is not closed, an invisible closepath from the
> (sub)path's
> > current point to its initial point is used for filling.
> > 2) if one path contains the other completely the fill-rule determines if
> the
> > subpath has to be filled or not.
> > 3) fill-rule="nonzero" (the default) will
> >    a) fill the inner subpath, if it has the same (angular) direction as
> the
> > outer subpath.
> >    b) not fill the the inner subpath, if its angular direction is
> different
> > to the outer subpath's.
> > 4) fill-rule="evenodd" will never fill the inner subpath
> >
> >
> > it is conform to the SVG 1.1 spec, that there is *no way* to fill the
> square
> > in path (id="A") completely.
> > the path can be modified (id="B")to match point 3a) above. But
> in case of
> an
> > "N"-shaped subpath instead of a "V" that wouldn't help either.
> > --
> > stefan
> >
> >
> > ----- Original Message -----
> > From: "Doug Schepers" <doug@schepers.cc>
> > To: "Goessner / MecXpert" <goessner@mecxpert.de>
> > Sent: Wednesday, May 01, 2002 2:24 PM
> > Subject: Re: fill-rule problem ..
> >
> >
> > > Could this be a bug in ASV3?  I got it to render as solid once, after
> > > refreshing a couple of times, and once got a blue artifact
> line straight
> > > from (50,50) to (90,50). [WinMe/IE6/ASV3]
> > >
> > > What is the logic behind it not filling the square with gray? No lines
> are
> > > being crossed. Do I misunderstand the fill rule?
> > >
> > > -Doug
> > >
> > > ----- Original Message -----
> > > From: "Goessner / MecXpert" <goessner@mecxpert.de>
> > > To: <www-svg@w3.org>
> > > Sent: Wednesday, May 01, 2002 5:48 AM
> > > Subject: fill-rule problem ..
> > >
> > >
> > > > i have a simple square with two quadratic bezier segments
> in it. it is
> > > easy
> > > > to define this by a single path element.
> > > >
> > > > <svg>
> > > >   <path transform="translate(20,20)" stroke-width="2" stroke="blue"
> > > > fill="lightgray"
> > > >         d="M0,0 H100 V100 H0 Z M10,50 Q30,30 50,50 T90,50" />
> > > > </svg>
> > > >
> > > > but i cannot find a fill-rule to completely fill the
> square. even the
> > new
> > > > winding-count rule wouldn't work.
> > > >
> > > > --
> > > > stefan goessner
> > > >
> > > >
> > >
> >
>
>
Received on Friday, 3 May 2002 05:19:18 GMT

This archive was generated by hypermail 2.3.1 : Friday, 8 March 2013 15:54:22 GMT