diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2025-02-05 11:12:32 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2025-02-05 11:30:30 +0300 |
commit | 409081f7caab0fd90da025db03f20c596905c1f9 (patch) | |
tree | a8b32fd5082d1277e0b727ffbd2604cad4b6abf7 /contrib/python/fonttools/fontTools/misc/bezierTools.py | |
parent | 64dbe3e5f2c96d6cf15ada015fb6ee64d12c02ff (diff) | |
download | ydb-409081f7caab0fd90da025db03f20c596905c1f9.tar.gz |
Intermediate changes
commit_hash:6c65b2ed290900c658e42d7818d9bd50d568a8ba
Diffstat (limited to 'contrib/python/fonttools/fontTools/misc/bezierTools.py')
-rw-r--r-- | contrib/python/fonttools/fontTools/misc/bezierTools.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/contrib/python/fonttools/fontTools/misc/bezierTools.py b/contrib/python/fonttools/fontTools/misc/bezierTools.py index 1b37ade8d6..2021f24437 100644 --- a/contrib/python/fonttools/fontTools/misc/bezierTools.py +++ b/contrib/python/fonttools/fontTools/misc/bezierTools.py @@ -631,7 +631,14 @@ def splitCubicAtT(pt1, pt2, pt3, pt4, *ts): ((77.3438, 56.25), (85.9375, 43.75), (93.75, 25), (100, 0)) """ a, b, c, d = calcCubicParameters(pt1, pt2, pt3, pt4) - return _splitCubicAtT(a, b, c, d, *ts) + split = _splitCubicAtT(a, b, c, d, *ts) + + # the split impl can introduce floating point errors; we know the first + # segment should always start at pt1 and the last segment should end at pt4, + # so we set those values directly before returning. + split[0] = (pt1, *split[0][1:]) + split[-1] = (*split[-1][:-1], pt4) + return split @cython.locals( |