mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 17:27:35 +00:00
LibGfx: Increase bezier splitting tolerance to 0.5
No noticeable difference a bit faster. This is still arbitrary and should be somehow derived from the curve.
This commit is contained in:
parent
65b87bace9
commit
13a4fb0325
11 changed files with 8 additions and 5 deletions
|
@ -2086,7 +2086,8 @@ void Painter::draw_triangle_wave(IntPoint a_p1, IntPoint a_p2, Color color, int
|
|||
|
||||
static bool can_approximate_bezier_curve(FloatPoint p1, FloatPoint p2, FloatPoint control)
|
||||
{
|
||||
constexpr float tolerance = 0.015f;
|
||||
// TODO: Somehow calculate the required number of splits based on the curve (and its size).
|
||||
constexpr float tolerance = 0.5f;
|
||||
|
||||
auto p1x = 3 * control.x() - 2 * p1.x() - p2.x();
|
||||
auto p1y = 3 * control.y() - 2 * p1.y() - p2.y();
|
||||
|
@ -2163,7 +2164,8 @@ void Painter::for_each_line_segment_on_cubic_bezier_curve(FloatPoint control_poi
|
|||
|
||||
static bool can_approximate_cubic_bezier_curve(FloatPoint p1, FloatPoint p2, FloatPoint control_0, FloatPoint control_1)
|
||||
{
|
||||
constexpr float tolerance = 0.015f;
|
||||
// TODO: Somehow calculate the required number of splits based on the curve (and its size).
|
||||
constexpr float tolerance = 0.5f;
|
||||
|
||||
auto ax = 3 * control_0.x() - 2 * p1.x() - p2.x();
|
||||
auto ay = 3 * control_0.y() - 2 * p1.y() - p2.y();
|
||||
|
|
|
@ -514,9 +514,10 @@ Path Path::stroke_to_fill(float thickness) const
|
|||
}
|
||||
|
||||
// Note: This is the same as the tolerance from bezier curve splitting.
|
||||
constexpr auto flatness = 0.015f;
|
||||
auto pen_vertex_count = max(
|
||||
static_cast<int>(ceilf(AK::Pi<float> / acosf(1 - (2 * flatness) / thickness))), 4);
|
||||
constexpr auto flatness = 0.5f;
|
||||
auto pen_vertex_count = (thickness >= 2 * flatness) ? max(
|
||||
static_cast<int>(ceilf(AK::Pi<float> / acosf(1 - (2 * flatness) / thickness))), 4)
|
||||
: 4;
|
||||
if (pen_vertex_count % 2 == 1)
|
||||
pen_vertex_count += 1;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue