KarbonCurveFit.cpp File Reference
#include "KarbonCurveFit.h"#include <math.h>

Go to the source code of this file.
Classes | |
| class | FitVector |
Defines | |
| #define | MAXPOINTS 1000 |
Functions | |
| double | distance (const QPointF &p1, const QPointF &p2) |
| FitVector | ComputeLeftTangent (const QList< QPointF > &points, int end) |
| FitVector | ComputeRightTangent (const QList< QPointF > &points, int end) |
| static double * | ChordLengthParameterize (const QList< QPointF > &points, int first, int last) |
| static FitVector | VectorAdd (FitVector a, FitVector b) |
| static FitVector | VectorScale (FitVector v, double s) |
| static FitVector | VectorSub (FitVector a, FitVector b) |
| static FitVector | ComputeCenterTangent (const QList< QPointF > &points, int center) |
| static double | B0 (double u) |
| static double | B1 (double u) |
| static double | B2 (double u) |
| static double | B3 (double u) |
| QPointF * | GenerateBezier (const QList< QPointF > &points, int first, int last, double *uPrime, FitVector tHat1, FitVector tHat2) |
| static QPointF | BezierII (int degree, QPointF *V, double t) |
| static double | ComputeMaxError (const QList< QPointF > &points, int first, int last, QPointF *curve, double *u, int *splitPoint) |
| static double | NewtonRaphsonRootFind (QPointF *Q, QPointF P, double u) |
| static double * | Reparameterize (const QList< QPointF > &points, int first, int last, double *u, QPointF *curve) |
| QPointF * | FitCubic (const QList< QPointF > &points, int first, int last, FitVector tHat1, FitVector tHat2, float error, int &width) |
| QPainterPath | bezierFit (const QList< QPointF > &points, float error) |
Define Documentation
| #define MAXPOINTS 1000 |
Function Documentation
| static double B0 | ( | double | u | ) | [static] |
| static double B1 | ( | double | u | ) | [static] |
| static double B2 | ( | double | u | ) | [static] |
| static double B3 | ( | double | u | ) | [static] |
| QPainterPath bezierFit | ( | const QList< QPointF > & | points, | |
| float | error | |||
| ) |
Definition at line 533 of file KarbonCurveFit.cpp.
References ComputeLeftTangent(), ComputeRightTangent(), and FitCubic().
Referenced by FreehandMode::mouseReleaseEvent().
| static QPointF BezierII | ( | int | degree, | |
| QPointF * | V, | |||
| double | t | |||
| ) | [static] |
Definition at line 323 of file KarbonCurveFit.cpp.
Referenced by ComputeMaxError(), and NewtonRaphsonRootFind().
| static double* ChordLengthParameterize | ( | const QList< QPointF > & | points, | |
| int | first, | |||
| int | last | |||
| ) | [static] |
| static FitVector ComputeCenterTangent | ( | const QList< QPointF > & | points, | |
| int | center | |||
| ) | [static] |
Definition at line 159 of file KarbonCurveFit.cpp.
References FitVector::m_X, FitVector::m_Y, FitVector::normalize(), and VectorSub().
Referenced by FitCubic().
| FitVector ComputeLeftTangent | ( | const QList< QPointF > & | points, | |
| int | end | |||
| ) |
Definition at line 98 of file KarbonCurveFit.cpp.
References FitVector::normalize().
Referenced by bezierFit().
| static double ComputeMaxError | ( | const QList< QPointF > & | points, | |
| int | first, | |||
| int | last, | |||
| QPointF * | curve, | |||
| double * | u, | |||
| int * | splitPoint | |||
| ) | [static] |
Definition at line 353 of file KarbonCurveFit.cpp.
References BezierII(), FitVector::length(), and VectorSub().
Referenced by FitCubic().
| FitVector ComputeRightTangent | ( | const QList< QPointF > & | points, | |
| int | end | |||
| ) |
Definition at line 106 of file KarbonCurveFit.cpp.
References FitVector::normalize().
Referenced by bezierFit().
| double distance | ( | const QPointF & | p1, | |
| const QPointF & | p2 | |||
| ) |
Definition at line 91 of file KarbonCurveFit.cpp.
Referenced by ChordLengthParameterize(), FitCubic(), Canvas::frameHitTest(), GenerateBezier(), LegacyMode::HandleSizer(), KCurve::keyPressEvent(), LineMove::length(), KCurve::mouseMoveEvent(), and KCurve::mousePressEvent().
| QPointF* FitCubic | ( | const QList< QPointF > & | points, | |
| int | first, | |||
| int | last, | |||
| FitVector | tHat1, | |||
| FitVector | tHat2, | |||
| float | error, | |||
| int & | width | |||
| ) |
Definition at line 436 of file KarbonCurveFit.cpp.
References ChordLengthParameterize(), ComputeCenterTangent(), ComputeMaxError(), distance(), GenerateBezier(), FitVector::negate(), Reparameterize(), and FitVector::scale().
Referenced by bezierFit().
| QPointF* GenerateBezier | ( | const QList< QPointF > & | points, | |
| int | first, | |||
| int | last, | |||
| double * | uPrime, | |||
| FitVector | tHat1, | |||
| FitVector | tHat2 | |||
| ) |
Definition at line 208 of file KarbonCurveFit.cpp.
References B0(), B1(), B2(), B3(), distance(), FitVector::dot(), MAXPOINTS, FitVector::scale(), VectorAdd(), VectorScale(), and VectorSub().
Referenced by FitCubic().
| static double NewtonRaphsonRootFind | ( | QPointF * | Q, | |
| QPointF | P, | |||
| double | u | |||
| ) | [static] |
Definition at line 380 of file KarbonCurveFit.cpp.
References BezierII().
Referenced by Reparameterize().
| static double* Reparameterize | ( | const QList< QPointF > & | points, | |
| int | first, | |||
| int | last, | |||
| double * | u, | |||
| QPointF * | curve | |||
| ) | [static] |
Definition at line 423 of file KarbonCurveFit.cpp.
References NewtonRaphsonRootFind().
Referenced by FitCubic().
Definition at line 139 of file KarbonCurveFit.cpp.
References FitVector::m_X, and FitVector::m_Y.
Referenced by GenerateBezier().
Definition at line 145 of file KarbonCurveFit.cpp.
References FitVector::m_X, and FitVector::m_Y.
Referenced by GenerateBezier().
Definition at line 152 of file KarbonCurveFit.cpp.
References FitVector::m_X, and FitVector::m_Y.
Referenced by ComputeCenterTangent(), ComputeMaxError(), and GenerateBezier().
