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

📄 xmathlib.h

📁 矩阵和初等几何常用算法
💻 H
字号:
/*  mmathlib.h

	 mmathlib functions and variables

*/

/*
 *
 *
 *      Copyright (C) 1996 by HUST CAD Center
 *      All Rights Reserved.
 *
 */

#ifndef _MMATHLIB_H
#define _MMATHLIB_H

//	C run-time library header files
#include <math.h>
#ifndef BIG
#define BIG     1.0e15
#endif
#ifndef LITTLE
#define LITTLE  1.0e-15
#endif
#define DIST_TOL 0.00001

#define dtor(angle) angle*PI/180.0
#define rtod(angle) angle*180.0/PI
#define sind(angle) sin(dtor(angle))
#define cosd(angle) cos(dtor(angle))
#define tand(angle) tan(dtor(angle))
#define atand(value) rtod(atan(value))
#define asind(value) rtod(asin(value))
#define acosd(value) rtod(acos(value))
#ifndef min
#define min(a,b) ((a)<(b))?(a):(b)
#endif
#define fmin(a,b) ((a)<(b))?(a):(b)
#define sqr(value) (value)*(value)
double 	__stdcall dpp(double x1, double y1, double x2, double y2);
void 	__stdcall lpp(double x1,double y1,double x2,double y2, double *a,double *b,double *c);
void 	__stdcall ppln(double x, double y, double a, double b, double c, double *xp,double *yp);
double 	__stdcall dpl(double a, double b, double c, double x, double y);
short 	__stdcall pll(double a1,double b1,double c1,double a2,double b2,double c2, double *x,double *y);
short 	__stdcall plc(double a,double b,double c,double xc,double yc,double r, double x_int[],double y_int[]);
short 	__stdcall pcc(double xc1,double yc1,double r1,double xc2,double yc2,double r2, double x_int[],double y_int[]);
short 	__stdcall point_in_line(double x, double y, double xs, double ys, double xe, double ye);
short 	__stdcall point_in_arc(double x, double y, double xc, double yc, double xs, double ys, double xe, double ye);
short 	__stdcall same_coor(double value1, double value2);
short 	__stdcall same(double value1, double value2);
short 	__stdcall same_point(double x1, double y1, double x2, double y2);
short 	__stdcall same_angle(double value1, double value2);
void 	__stdcall rotate(double x1, double y1, double x2, double y2, double angle, double x[]);
short 	__stdcall tangent_line_circle(double x1, double y1, double x2, double y2, double r2, double x_tan[], double y_tan[]);
void 	__stdcall get_ver_point(double x, double y, double x1, double y1, double x2, double y2, double *xv, double *yv);
short 	__stdcall in_angle(double angle, double angle_1, double angle_2);
short	__stdcall in_angle_with_eps(double angle, double angle_1, double angle_2,double eps);
void 	__stdcall lcpt(double xc, double yc, double r, double xt, double yt, double *a, double *b, double *c);
short 	__stdcall lcct(double xc1, double yc1, double r1, double xc2, double yc2,	double r2, double *xt1, double *yt1, double *xt2, double *yt2);
double 	__stdcall standard_angle(double angle);
double	__stdcall points_to_angle(double x1, double y1, double x2, double y2);
short 	__stdcall ppppp(double x1, double y1, double x2, double y2, double x3, double y3,
		double x4, double y4, double *x0, double *y0);
double 	__stdcall alx(double a,double b);
short 	__stdcall tlpp(double x1, double y1, double x2, double y2, double a, double b);
int 	__stdcall ppp(double x1, double y1, double x2, double y2, double d, double *x, double *y);
void 	__stdcall plp(double a, double b, double c, double xp, double yp, double *x, double *y);
void 	__stdcall plpd(double a, double b, double xp, double yp, double d, double *x, double *y);
void 	__stdcall plpd1(double a, double b, double xp, double yp, double d, double *x, double *y);
void 	__stdcall lld(double c, double d, double *c1);
void 	__stdcall lpla(double a1, double b1, double xp, double yp, double alpha,double *a, double *b, double *c);
void 	__stdcall lpln(double a1, double b1, double xp, double yp, double *a, double *b,double *c);
double 	__stdcall appx(double x1, double y1, double x2, double y2);
void 	__stdcall lppn(double x1, double y1, double x2, double y2, double *a, double *b, double *c);
void 	__stdcall lplp(double xp, double yp, double a, double b, double *c);
double 	__stdcall all(double a1, double b1, double a2, double b2);
void 	__stdcall pcpa(double xc, double yc, double xp, double yp, double alpha, double *x, double *y);
short 	__stdcall side_of(double a, double b, double c, double x, double y);
short 	__stdcall colinear(double a1, double b1, double c1, double a2, double b2, double c2);
short 	__stdcall parallel(double a1, double b1, double a2, double b2);
short 	__stdcall perpend(double a1, double b1, double a2, double b2);
short 	__stdcall Sign(double x);
short 	__stdcall clll(double a1, double b1, double c1, short q1, double a2, double b2, double c2, short q2,
		double a3, double b3, double c3, short q3, double *xc, double *yc, double *r);
short	__stdcall ccll(double x1, double y1, double r1, short q1,	double a2, double b2, double c2, short q2,
			double a3, double b3, double c3, short q3,	double rr[], double xxc[], double yyc[]);
short 	__stdcall cccl(double x1, double y1, double r1, short q1, double x2, double y2, double r2, short q2,
			double a3, double b3, double c3, short q3,  double rr[], double xxc[], double yyc[]);
short 	__stdcall cccc(double x1, double y1, double r1, short q1,	double x2, double y2, double r2, short q2,
		double x3, double y3, double r3, short q3,  double rr[], double xxc[], double yyc[]);
void 	__stdcall dswap(double *p1,double *p2);
short 	__stdcall point_on_circle(double x, double y, double cenx, double ceny, double radius);
int 	__stdcall PointInBox(double x, double y, double x1, double y1, double x2, double y2);
void 	__stdcall StandardAngle(double *angle);

// added by Bossin 1996--6--29
void    __stdcall Polar(double *pt1, double angle, double dist, double *pt2);
double  __stdcall AngleLX(double *p1, double *p2);

double  __stdcall get_lineangle(double x1,double y1,double x2,double y2);

short   __stdcall GetIntersectPt(double x1, double y1, double x2, double y2, double x3, double y3,
      double x4, double y4, double *x0, double *y0);
//add by zhanghuaan 2007-6
void __stdcall ldl(double a1,double b1,double c1,double *a, double *b, double *c,double d);
void __stdcall ldl1(double a1,double b1,double c1,double *a, double *b, double *c,double d);
void __stdcall ppdl(double x1, double y1,double x2,double y2,double d,double *a,double *b,double *c);
void __stdcall ppdl1(double x1, double y1,double x2,double y2,double d,double *a,double *b,double *c);
#endif		//	_XMATHLIB_H

⌨️ 快捷键说明

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