/********************************判断两个3D点是否相等*************************************
double firstPoint[3] //<I>第一个3D点
double secondPoint[3] //<I>第二个3D点
double tolerance //<I>精度公差(一般为1e-6)
return ture //<o>相等
return false //<o>不相等
*/
static bool isSamePoint3D(double *firstPoint, double *secondPoint, double tolerance)
{
for (int i(0); i < 3; ++i)
{
if (fabs(firstPoint[i] - secondPoint[i]) < tolerance)
{//duoble类型要考虑精度问题
if (i == 2)
{
return true;//最后一个也相等就相等
}
}
else
{
break;//不相等直接退出
}
}
return false;
}
/********************************判断两个2D点是否相等*************************************
double firstPoint[3] //<I>第一个3D点
double secondPoint[3] //<I>第二个3D点
double tolerance //<I>精度公差(一般为1e-6)
return ture //<o>相等
return false //<o>不相等
*/
static bool isSamePoint2D(double *firstPoint, double *secondPoint, double tolerance)
{
for (int i(0); i < 2; ++i)
{
if (fabs(firstPoint[i] - secondPoint[i]) < tolerance)
{//duoble类型要考虑精度问题
print(fabs(firstPoint[i] - secondPoint[i]), 1);
if (i == 1)
{
return true;//最后一个也相等就相等
}
}
else
{
break; //不相等直接退出
}
}
return false;
}