From e3ea0926c22792edda2e4dffee3d59c9a7fb7c30 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sat, 18 Aug 2018 12:43:14 +0200 Subject: [PATCH] catmull-rom: use uniform spacing of curve evaluation points --- rtengine/diagonalcurves.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rtengine/diagonalcurves.cc b/rtengine/diagonalcurves.cc index d543dd8f5..1af086925 100644 --- a/rtengine/diagonalcurves.cc +++ b/rtengine/diagonalcurves.cc @@ -390,13 +390,12 @@ void catmull_rom_chain(int n_points, int n_cp, double *x, double *y, catmull_rom_reflect(x[n_cp-2], y[n_cp-2], x[n_cp-1], y[n_cp-1], x_last, y_last); int segments = n_cp - 1; - int points_segments = n_points / segments; res_x.reserve(n_points); res_y.reserve(n_points); for (int i = 0; i < segments; ++i) { - int n = points_segments + (i == 0 ? n_points % segments : 0); + int n = max(int(n_points * (x[i+1] - x[i]) + 0.5), 2); catmull_rom_spline( n, i == 0 ? x_first : x[i-1], i == 0 ? y_first : y[i-1], x[i], y[i], x[i+1], y[i+1],