- From: Boris via GitHub <sysbot+gh@w3.org>
- Date: Fri, 28 Oct 2016 09:02:47 +0000
- To: public-css-archive@w3.org
BorisChiou has just created a new issue for
https://github.com/w3c/csswg-drafts:
== [css-shapes] A proposal of the definition of the distance between
two shape functions ==
https://w3c.github.io/web-animations/#paced-keyframe-spacing-mode
https://drafts.csswg.org/css-shapes/#basic-shape-interpolation
In web-animations (@birtles), we need to calculate the distance
between two shape functions for paced spacing. Unfortunately, we don't
have a definition of the distance between two shape functions in
[css-shapes], so I propose some ideas about it (which is very similar
with interpolation):
1. Both shapes must use the same reference box.
2. If both shapes are the same type, that type is ellipse() or
circle(), and none of the radii use the closest-side or farthest-side
keywords, subtract each value in the shape functions and get the
square root of the sum of these difference values. (Kind of Euclidean
distance, I think)
3. If both shapes are of type inset(), subtract each value in the
shape functions and get the square root of the sum of these difference
values.
4. If both shapes are of type polygon(), both polygons have the same
number of vertices, and use the same fill-rule, subtract each value in
the shape functions and get the square root of the sum of these
difference values.
5. In all other cases, there is no distance, so we return 0.
e.g.
`shape1: { clipPath: "circle(calc(10px + 10px) at 20px 10px)" }`
`shape2: { clipPath: "circle(calc(20px + 30px) at 10px 50%)" }`
- Step 1: The difference shape function: `circle(calc(30px) at -10px
calc(50% - 10px))`
- Step 2: The distance is: `sqrt(30 * 30 + (-10) * (-10) + 0.5 * 0.5 +
(-10) * (-10))`
- P.S. We use computed values, so 50% is 0.5 in this example.
Please view or discuss this issue at
https://github.com/w3c/csswg-drafts/issues/662 using your GitHub
account
Received on Friday, 28 October 2016 09:02:53 UTC