W3C home > Mailing lists > Public > www-svg@w3.org > June 2013

Re: Method for finding intersection points

From: Stephen Chenney <schenney@chromium.org>
Date: Wed, 19 Jun 2013 15:05:51 -0400
Message-ID: <CAObCcUopjHsmxiaeR-OYos_KeQ_66d=-0czV69RiktGEk03++w@mail.gmail.com>
To: Doug Schepers <schepers@w3.org>
Cc: Nikita Vasilyev <me@elv1s.ru>, "www-svg@w3.org" <www-svg@w3.org>
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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:54:44 UTC