You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> Spline.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
// <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2007-3-28
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "Point2D.h"
|
|
|
|
|
|
#include "Curve.h"
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CSpline
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CSpline(void);
|
|
|
|
|
|
virtual ~CSpline(void);
|
|
|
|
|
|
|
|
|
|
|
|
int Create(double* px, double *py, int num, BOOL bClose);
|
|
|
|
|
|
int GetPoint(CPointList& bp, double dSmoothness);
|
|
|
|
|
|
|
|
|
|
|
|
void Clear(void);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
int GetPoint(CPointList& bp, double x, double y, double ax, double ay, double bx, double by, double cx, double cy, double dSmoothness);
|
|
|
|
|
|
|
|
|
|
|
|
void CreateSpline(); //<2F><><EFBFBD><EFBFBD>SPLINE
|
|
|
|
|
|
void CreateSplineClosed(); //<2F><><EFBFBD>ɹر<C9B9>SPLINE
|
|
|
|
|
|
|
|
|
|
|
|
void MatrixSolve(double* B);
|
|
|
|
|
|
void MatrixSolveClosed(double *B);
|
|
|
|
|
|
|
|
|
|
|
|
int num;
|
|
|
|
|
|
double* Px; //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
double* Py;
|
|
|
|
|
|
|
|
|
|
|
|
double* Ax; //<2F><>Ҫdelete
|
|
|
|
|
|
double* Ay;
|
|
|
|
|
|
double* Bx;
|
|
|
|
|
|
double* By;
|
|
|
|
|
|
double* Cx;
|
|
|
|
|
|
double* Cy;
|
|
|
|
|
|
double* k;
|
|
|
|
|
|
double* Mat[3];
|
|
|
|
|
|
};
|