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

📄 fitting.h

📁 使用lm算法对二维圆数据进行拟和
💻 H
字号:
/*
 *fitting.h
 */

#ifndef	_FITTING_H
#define	_FITTING_H

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <math.h>

typedef struct{
	int		rows;
	int		cols;
	double	**data;
}matrix_t;


struct circle_2dim_result{
	double	centre_x;
	double	centre_y;
	double	radius;
	double	eps;	
};

struct circle_3dim_result{
	double	centre_x;
	double	centre_y;
	double	centre_z;
	double	radius;
	double	eps;
};

struct sphere_result{
	double	centre_x;
	double	centre_y;
	double	centre_z;
	double	radius;
	double	eps;
};

struct cone_result{
	double	vertex_x;
	double	vertex_y;
	double	vertex_z;
	double	eps;
};

struct cylinder_result{
	double	radius;
	double	eps;
};

struct result{
	int type;

	union{
		struct circle_2dim_result	circle_2dim_res;
		struct circle_3dim_result	circle_3dim_res;
		struct sphere_result		sphere_res;
		struct cone_result			cone_res;
		struct cylinder_result		cylinder_res;
	}u;
};

#define TYPE_2D_CIRCLE			1
#define TYPE_3D_CIRCLE			2
#define TYPE_SPHERE				3
#define TYPE_CONE				4
#define TYPE_CYLINDER			5

struct data_set{
	int		count;
	double	*x;
	double	*y;
	double	*z;
};

struct fitting_target{
	int		type;				//geometry graphic type

	struct	data_set	data;

	struct	result		result;
};

#define INIT_FACTOR_VALUE	0.01
#define INCREMENT_FACTOR	2.0
#define DECREMENT_FACTOR	0.4
#define ITERATION_LIMIT		100
#define MIN_NUM				0.000001
#define MAX_GUESS_COUNT		20
#define CONVERGE_VALUE		0.0001

#define STEP_SEARCH			2  //for sphere


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -