📄 bsplineinterpolateobj.h
字号:
//-----------------------------------------------------------------------------
// File: BSplineInterpolateObj.h
//
// Project: BSpllineInterpolatePrj(动态连接库工程)
//
// Desc: 基于多层B样条的散乱数据插值
//
// Version: Version 1.0
//
// Modify: 编制日期:2006.1.23 马畅
// 修改日期:
//
// Copyright (c) 2006 ZonDySoft. All rights reserved.
//-----------------------------------------------------------------------------
#ifndef _BSPLINEINTERPOLATEOBJ_H
#define _BSPLINEINTERPOLATEOBJ_H
#ifdef _BSPLINEINTERPOLATE//导出的头
#define _BSPLINEINTERPOLATEPRJ __declspec(dllexport)//宏定义
#else
#define _BSPLINEINTERPOLATEPRJ __declspec(dllimport)
#endif
#include "3DBaseDefine.h"
#include "3DBaseStru.h"
#include "Win_area.h"
#include "basDefine.h"
#include "math.h"
#include <vector>
#include <algorithm>
#include "Tin_area.h"
using namespace std;
typedef vector <float> VECTOR_FLOAT;
class _BSPLINEINTERPOLATEPRJ CBSplineInterpolateObj
{
public:
CBSplineInterpolateObj();
~CBSplineInterpolateObj();
long ControlPntTransform( G3D_Dot *ScatteredPnt,long PntNum,float XStep,float YStep,
long &M1,long &N1);//网格化控制点函数
long GetBasicBSplineFuction(float S,float *BSplineValue);//计算均匀单方向上
//的三次B样条基函数
long CalculateW(int k,int l,float s,float t,float &W);//计算Wkl函数值
long GetPhiIJValue(G3D_Dot *ScatteredPnt,long PntNum,long M1,
long N1,float XStep,float YStep,float *PhiIJ);//计算控制点的φij值
long CalculatePhiIJ(G3D_Dot * ScatteredPnt,long PntNum,long M1,
long N1,float XStep,float YStep,float *PhiIJ);
long GetInterpolateValue( G3D_Dot * ScatteredPnt,
long PntNum,long M1,long N1,float XStep,float YStep,
double &Ix,double &Iy,double &Iz);//计算f(x,y)函数值
protected:
private:
long m1;//控制点网格,x方向
long n1;//控制点网格,y方向
float *PhiIJ;//控制点阵列
G3D_Dot *ScatteredPoint;//散乱数据点
long ScatteredPointNumber;//散乱数据点个数
};
#ifndef _BSPLINEINTERPOLATE//导出的头
#ifdef _DEBUG
#pragma comment(lib, "BSplineInterpolatePrjD.lib")//DEBUG版
#else
#pragma comment(lib, "BSplineInterpolatePrj.lib")//RELEASE版
#endif
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -