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
1.4 KiB
C++

#pragma once
#include "MLPlNode.h"
#include "MLPline.h"
#include "MLRect.h"
class MLFuncom
{
public:
MLFuncom();
~MLFuncom();
};
void swap(double& a, double& b);
//判断两个浮点数据是否相等
bool Equ(double dVal1, double dVal2); // ==
bool Equ(double dVal1, double dVal2, int dot); // ==
//得到距离
double GetDistance(const MLPlNode& dpt1, const MLPlNode& dpt2);
double GetDistance(double dx1, double dy1, double dx2, double dy2);
//查找(nKey 代表线数据的列序号 x=0 y=1 z=2 l=3 s=4)
int bs(double dbKey, MLPline& pline, int nKey = 3);
// 通过X 得到Y值
double CZ(double x0, double x1, double x2, double y1, double y2);
double cz(double dbKey, int nIndex, MLPline& pline, int nKey1, int nKey2);
double GetDistance(const MLPoint& dpt, const MLPoint& dpt1, const MLPoint& dpt2, MLPoint& dptDest);
double GetDistance(const MLPlNode& dpt, const MLPlNode& dpt1, const MLPlNode& dpt2, MLPlNode& dptDest);
//计算直线段与直线段相交关系(是否充许线1的延长)
int LineLine(double L1x1, double L1y1, double L1x2, double L1y2, double* L2x1, double* L2y1, double* L2x2, double* L2y2, bool bExtend1 = false);
//判断点是否在矩形内
bool ptInRect(const MLRect& Rect, double dbx, double dby);
// 判断两矩形之间关系
bool CrossRtRt(const MLRect& rect1, const MLRect& rect2);
// 双精度转字符串
__declspec(dllexport) QString ToString(int nVal);
__declspec(dllexport) QString ToString(double dVal);
__declspec(dllexport) QString ToString(double dVal, int nDotNum);