示例#1
0
/*
 *  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);
}
示例#3
0
文件: BCStroke.cpp 项目: lupnfer/camc
/*
*  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);
}
示例#4
0
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]);
}