点,角度等转换,整型,浮点型,字符型转换,坐标系转换
AcGePoint3d FymConverUtil::ToPoint3d(const AcGePoint2d& pt, double z){
return AcGePoint3d(pt.x, pt.y, z);
}
AcGePoint2d FymConverUtil::ToPoint2d(const AcGePoint3d& pt)
{
return AcGePoint2d(pt.x, pt.y);
}
double FymConverUtil::AngleToRadion(double angle)
{
return angle * FymMathUtil::PI() / 180;
}
double FymConverUtil::RadionToAngle(double radius)
{
return radius * 180 / FymMathUtil::PI();
}
CString FymConverUtil::ToString(int val)// 整型转字符串(需要支持MFC)
{
CString str;
str.Format(采用T("%d"), val);//使用'Format'函数将整数'val'格式化为字符串,并存储在'str'中。'采用T("%d")'是一个宏,用于生成一个包含'%d'的宽字符字符串,其中'%d'会被替换为'val'的值
return str;
}
//将一个双精度浮点数转换为字符串。precision 参数指定了小数点后的位数,默认2
CString CConvertUtil::ToString(double value, int precision /*= 2*/)
{
CString strFormat, str;
strFormat.Format(TEXT("%%.%df"), precision);
//使用 strFormat.Format() 函数将格式字符串 "%%.%df" 中的 %df 替换为 precision 参数的值
str.Format(strFormat, value);
//使用 str.Format() 函数将格式化的字符串和输入的浮点数 value 结合在一起,生成最终的字符串
return str;
}
//将一个TCHAR类型的字符串转换为双精度浮点数。
double CConvertUtil::ToDouble(const TCHAR* str)
{
TCHAR* pszStop = NULL;
return 采用tcstod(str, &pszStop);
}/*采用tcstod 函数将字符串转换为浮点数。
采用tcstod 是C++中用来将TCHAR类型的字符串转换为双精度浮点数的函数。
它需要两个参数:要转换的字符串和用于存储转换结束位置的指针。
在这里,我们没有用到 pszStop,所以它的值被设为 NULL。返回值就是转换后的浮点数。*/
AcGePoint3d FymConverUtil::WcsPointToDcsPoint(const AcGePoint3d& point)
{
AcGePoint3d pt;
struct resbuf rbFrom, rbTo;
rbFrom.restype = RTSHORT;
rbFrom.resval.rint = 0;
rbTo.restype = RTSHORT;
rbTo.resval.rint = 2;//对浮点数进行四舍五入
// 坐标系转换函数:wcs坐标、wcs标识符(0)、dcs标识符(2)、类型为点(0)、dcs坐标
acedTrans(asDblArray(point), &rbFrom, &rbTo, 0, asDblArray(pt));
return pt;
}
AcGePoint3d FymConverUtil::UcsPointToWcsPoint(const AcGePoint3d& point)
{
AcGePoint3d pt;
struct resbuf rbFrom, rbTo;
rbFrom.restype = RTSHORT;
rbFrom.resval.rint = 1;
rbTo.restype = RTSHORT;
rbTo.resval.rint = 0;
// 坐标系转换函数:ucs坐标、ucs标识符(1)、wcs标识符(0)、类型为点(0)、wcs坐标
acedTrans(asDblArray(point), &rbFrom, &rbTo, 0, asDblArray(pt));
return pt;
}
AcGePoint3d FymConverUtil::WcsPointToUcsPoint(const AcGePoint3d& point)
{
AcGePoint3d pt;
struct resbuf rbFrom, rbTo;
rbFrom.restype = RTSHORT;
rbFrom.resval.rint = 0;
rbTo.restype = RTSHORT;
rbTo.resval.rint = 1;
// 坐标系转换函数:wcs坐标、ucs标识符(1)、wcs标识符(0)、类型为点(0)、ucs坐标
acedTrans(asDblArray(point), &rbFrom, &rbTo, 0, asDblArray(pt));
return pt;
}
页:
[1]