- From: Stephen Chenney <schenney@chromium.org>
- Date: Wed, 19 Jun 2013 15:05:51 -0400
- To: Doug Schepers <schepers@w3.org>
- Cc: Nikita Vasilyev <me@elv1s.ru>, "www-svg@w3.org" <www-svg@w3.org>
- Message-ID: <CAObCcUopjHsmxiaeR-OYos_KeQ_66d=-0czV69RiktGEk03++w@mail.gmail.com>
It's a very hard thing to implement correctly for all cases, and a call might be rather expensive. I worry that different implementations will give different answers under surprisingly simple situations. Still, I think we will reasonably soon have the ability to do this in the Chrome back-end (Skia) so for us it might be a fairly easy thing to implement. Thanks for providing motivation for the change. Stephen. On Wed, Jun 19, 2013 at 9:19 AM, Doug Schepers <schepers@w3.org> wrote: > Hi, Nikita- > > I strongly agree. > > In writing apps with SVG and JS, I've wanted to have an easy way to get > intersections for many different things. I'm currently using Kevin > Lindsey's intersection library on a personal project. > > I actually believe that we should work on a more comprehensive API for > point, vector, and matrix math (including intersections), which could be > used for both SVG and Canvas (and possibly CSS); JS libs like Sylvester [1] > and mjs [2] are a good start, but would have better performance if > implemented natively in browsers. I don't have the math skills to do this > myself, but if we could find someone to help spec it out, I could > facilitate the spec production. > > [1] http://sylvester.jcoglan.com/ > [2] http://webgl-mjs.googlecode.**com/hg/docs/files/mjs-js.html<http://webgl-mjs.googlecode.com/hg/docs/files/mjs-js.html> > > Regards- > -Doug > > > On 6/19/13 6:27 AM, Nikita Vasilyev wrote: > >> I propose to implement a method for finding intersection points for >> basic shapes and paths. >> >> svgElements.**getIntersectionPoints( svgElement ) >> -> Array of points, e.g. [{x: 1, y: 120}, …] >> >> There are JavaScript libraries for this >> http://www.kevlindev.com/**geometry/2D/intersections/<http://www.kevlindev.com/geometry/2D/intersections/> >> http://raphaeljs.com/**reference.html#Raphael.**pathIntersection<http://raphaeljs.com/reference.html#Raphael.pathIntersection> >> >> There is a getIntersectionList method which calculates intersection >> using bounding boxes of the elements >> (http://dev.w3.org/SVG/**profiles/1.1F2/publish/struct.** >> html#__svg__SVGSVGElement__**getIntersectionList<http://dev.w3.org/SVG/profiles/1.1F2/publish/struct.html#__svg__SVGSVGElement__getIntersectionList> >> ) >> It does NOT return intersection points. >> >> Motivation >> Finding intersection is commonly used for drawing and prototyping >> applications such as Adobe Illustrator to "snap" objects. >> > > > >
Received on Wednesday, 19 June 2013 19:06:19 UTC