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.

46 lines
972 B
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<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];
};