From c876104714ac5b0120d39b598ae7e6f63f2e949a Mon Sep 17 00:00:00 2001 From: phkahler <14852918+phkahler@users.noreply.github.com> Date: Thu, 4 Jun 2020 19:04:42 -0400 Subject: [PATCH] Make sure circles have at least 16 segments. Before this commit, with the highest chord tolerance settings, circles would render as octagons, which confused a lot of people. See #295. --- src/srf/ratpoly.cpp | 2 +- test/request/ttf_text/normal.png | Bin 6162 -> 6154 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/srf/ratpoly.cpp b/src/srf/ratpoly.cpp index 1ffa338..7affff0 100644 --- a/src/srf/ratpoly.cpp +++ b/src/srf/ratpoly.cpp @@ -259,7 +259,7 @@ void SBezier::MakePwlInitialWorker(List *l, double ta, double tb, double }); double step = 1.0/SS.GetMaxSegments(); - if((tb - ta) < step || d < chordTol) { + if( ((tb - ta) < step || d < chordTol) && ((tb-ta) < 0.2) ) { // A previous call has already added the beginning of our interval. l->Add(&pb); } else { diff --git a/test/request/ttf_text/normal.png b/test/request/ttf_text/normal.png index 9aa4d185373e07540cd3ebb2985cc867c8f8072e..ccb581f00aeae407da622342f3f8f36250276b27 100644 GIT binary patch delta 3553 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