You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some of polygonized arc segments in the offset output are violating offset distance significantly.
Clipper1 on the same input was not violating it for more than 1.5 units of distance.
Clipper2 violates it on 14470.2 units of distance.
Red is input, green is output, blue points on arcs is where polygonization violates distance.
Somehow only subset of arcs has these problems.
Test (As always, add this to your unit tests please):
Firstly, the purpose of the arc tolerance parameter (with offsetting) is to allow users to specify what they consider a sensible compromise between achieving curve quality (with rounded offsets) while avoiding generating excessive numbers of vertices. And in your example above you are generating a huge (and arguably excessive) numbers of vertices. These will seriously degrade performance (eg in offsetting, in rendering, an in storage), and almost certainly won't achieve any detectable improvement in arc quality.
Further, arc imprecision is premised on the assumption that arcs will be starting exactly where they're meant to start. And that's not the case here, so the imprecision that you are seeing here is mostly unrelated to arc quality. The offset imprecision we're seeing here is very small, less than 0.03% of your offset delta. And when setting join_type = JoinType::Bevel, where offsetting should always be less than or equal delta, there is still some offsetting that exceeds delta (again by about 0.03%).
Nevertheless, I am still investigating why there is even this small amount of offsetting imprecision (and it seems unlikely that this is all due to rounding errors).
Its me again :)
Some of polygonized arc segments in the offset output are violating offset distance significantly.
Clipper1 on the same input was not violating it for more than 1.5 units of distance.
Clipper2 violates it on 14470.2 units of distance.
Red is input, green is output, blue points on arcs is where polygonization violates distance.
Somehow only subset of arcs has these problems.
Test (As always, add this to your unit tests please):
The text was updated successfully, but these errors were encountered: