Re: [fxtf-drafts] [motion-1] the description of contain flag in ray() function (#363)

I propose the following simplification: we take the larger of the transformed element's width or height, and subtract half that from the length we'd otherwise compute for the ray. This models treating the element as a circle and pulling it in to avoid overlap. This shortening is applied to the offset path itself, rather than being a used-value time adjustment to the position.

If the shortening would result in a negative-length path, it clamps to zero length.

* This massively simplifies the math; chord geometry is pretty complex as it is, even ignoring the question about `sides`.
* This makes the result direction-agnostic, maintaining the agnosticism of the non-`sides` values.
* This makes animation of offset-distance work more sensibly and uniformly, rather than having an unpredictable "dead zone" at its higher %s.
* Rotation of the transformed element no longer has a potentially massive impact on the shortening, either.
* This successfully handles the use-case it was designed for - positioning UI elements around the inner edge of a circular watch face - and reasonably handles other random use-cases in at least as meaningful a manner as the current spec.

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/fxtf-drafts/issues/363#issuecomment-1421363658 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 7 February 2023 19:58:56 UTC