⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsplineinterpolateobj.h

📁 B样条插值
💻 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 + -