/* * Reparameterize: * Given set of points and their parameterization, try to find * a better parameterization. * */ static qreal *Reparameterize(const QList<QPointF> &points, int first, int last, qreal *u, QPointF *curve) { int nPts = last - first + 1; int i; qreal *uPrime; /* New parameter values */ uPrime = new qreal[nPts]; for (i = first; i <= last; ++i) { uPrime[i-first] = NewtonRaphsonRootFind(curve, points.at(i), u[i-first]); } return (uPrime); }
/* * Reparameterize: * Given set of points and their parameterization, try to find * a better parameterization. * */ static double* Reparameterize(Point2 *d, int first, int last, double *u, BezierCurve bezCurve) { int nPts = last-first+1; int i; double *uPrime; /* New parameter values */ uPrime = (double *)malloc(nPts * sizeof(double)); for (i = first; i <= last; i++) { uPrime[i-first] = NewtonRaphsonRootFind(bezCurve, d[i], u[i- first]); } return (uPrime); }
/* * Reparameterize: * Given set of points and their parameterization, try to find * a better parameterization. * */ double *CBCStroke::Reparameterize( DISCURVE& d, /* Array of digitized points */ int first,int last, /* Indices defining region */ double *u, /* Current parameter values */ BezierCurve bezCurve) /* Current fitted curve */ { int nPts = last-first+1; int i; double *uPrime; /* New parameter values */ uPrime = (double *)malloc(nPts * sizeof(double)); for (i = first; i <= last; i++) { uPrime[i-first] = NewtonRaphsonRootFind(bezCurve, d[i], u[i-first]); } return (uPrime); }
void reparameterize(Point<ndims> *pts, int first, int last, double *u, Point<ndims> *curve, double *u_prime) { int npts = last - first + 1; for (int i = first; i <= last; ++i) u_prime[i - first] = NewtonRaphsonRootFind(curve, pts[i], u[i-first]); }