Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Numerically approximate arc perimeter #381

Open
wants to merge 30 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
e0a54eb
Impl `ParamCurve`, `ParamCurveArclen` for `Arc`
waywardmonkeys Sep 14, 2024
2d20d64
Numerically approximate ParamCurveArclen
tomcur Sep 27, 2024
7bd3bf5
Calculate for ellipse upper half, simplify arccos(a cos(x)/a)
tomcur Sep 28, 2024
2f8606e
Correctly wrap around
tomcur Sep 28, 2024
6537992
Fix negative sweep angle normalization
tomcur Sep 28, 2024
5025066
Add check comparing with bezier perimeter result
tomcur Sep 28, 2024
65b5484
Improve docs
tomcur Sep 28, 2024
361783e
Improve readability
tomcur Sep 28, 2024
8ff7424
Clippy
tomcur Sep 28, 2024
ea71123
Improve docs
tomcur Sep 28, 2024
1cdabf4
Probable performance improvements
tomcur Sep 28, 2024
f91abce
Fix wording
tomcur Sep 28, 2024
abb02be
Division instead of `powi`
tomcur Sep 29, 2024
f3e12f8
Start angle is modulo half turns
tomcur Sep 30, 2024
6ab3592
trunc is faster than floor
tomcur Sep 30, 2024
3d8fd7f
Reduce number of calls to integral calculation
tomcur Sep 30, 2024
ef1dddd
Provide rem_euclid in FloatFuncs
tomcur Oct 29, 2024
3f36dc1
clippy: group digits
tomcur Oct 29, 2024
73ddfff
Fix erroneous agm_elliptic_perimeter if radius y > radius x
tomcur Oct 29, 2024
0234382
Special-case complete elliptic perimeter
tomcur Oct 29, 2024
6e111a8
Lift calculation to compile-time
tomcur Oct 29, 2024
902b543
Don't calculate radii again
tomcur Oct 29, 2024
56c049a
Improve wording
tomcur Oct 30, 2024
f57a053
Add debug asserts
tomcur Nov 1, 2024
68cc0c1
Merge sqrts
tomcur Nov 1, 2024
9779d4e
Calculate incomplete integrals to absolute accuracy
tomcur Dec 13, 2024
6fab9bc
Add changelog
tomcur Dec 13, 2024
4af43fc
Remove comment
tomcur Dec 13, 2024
106be0c
Group operations
tomcur Dec 13, 2024
ad09dea
Recip
tomcur Dec 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@ This release has an [MSRV][] of 1.65.
- `Stroke` is now `PartialEq`, `StrokeOpts` is now `Clone`, `Copy`, `Debug`, `Eq`, `PartialEq`. ([#379][] by [@waywardmonkeys][])
- Implement `Sum` for `Vec2`. ([#399][] by [@Philipp-M][])
- Add triangle shape. ([#350][] by [@juliapaci][])
- `Arc` now implements `ParamCurve` and `ParamCurveArclen`. ([#378] by [@waywardmonkeys])

### Changed

- Reduce number of operations in `Triangle::circumscribed_circle`. ([#390][] by [@tomcur][])
- Numerically approximate ellipse perimeter. ([#383] by [@tomcur][])
- Numerically approximate elliptic arc perimeter. ([#381] by [@tomcur][])

## [0.11.1][] (2024-09-12)

Expand Down Expand Up @@ -90,7 +92,9 @@ Note: A changelog was not kept for or before this release
[#370]: https://github.com/linebender/kurbo/pull/370
[#375]: https://github.com/linebender/kurbo/pull/375
[#376]: https://github.com/linebender/kurbo/pull/376
[#378]: https://github.com/linebender/kurbo/pull/378
[#379]: https://github.com/linebender/kurbo/pull/379
[#381]: https://github.com/linebender/kurbo/pull/381
[#383]: https://github.com/linebender/kurbo/pull/383
[#388]: https://github.com/linebender/kurbo/pull/388
[#390]: https://github.com/linebender/kurbo/pull/390
Expand Down
Loading
Loading