找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 188|回复: 0

点,角度等转换,整型,浮点型,字符型转换,坐标系转换

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-3-6 11:45:15 | 显示全部楼层 |阅读模式
  1. AcGePoint3d FymConverUtil::ToPoint3d(const AcGePoint2d& pt, double z)
  2. {
  3.         return AcGePoint3d(pt.x, pt.y, z);
  4. }
  5. AcGePoint2d FymConverUtil::ToPoint2d(const AcGePoint3d& pt)
  6. {
  7.         return AcGePoint2d(pt.x, pt.y);
  8. }
  9. double FymConverUtil::AngleToRadion(double angle)
  10. {
  11.         return angle * FymMathUtil::PI() / 180;
  12. }
  13. double FymConverUtil::RadionToAngle(double radius)
  14. {
  15.         return radius * 180 / FymMathUtil::PI();
  16. }
  17. CString FymConverUtil::ToString(int val)// 整型转字符串(需要支持MFC)
  18. {
  19.         CString str;
  20.         str.Format(采用T("%d"), val);//使用'Format'函数将整数'val'格式化为字符串,并存储在'str'中。'采用T("%d")'是一个宏,用于生成一个包含'%d'的宽字符字符串,其中'%d'会被替换为'val'的值
  21.         return str;
  22. }
  23. //将一个双精度浮点数转换为字符串。precision 参数指定了小数点后的位数,默认2
  24. CString CConvertUtil::ToString(double value, int precision /*= 2*/)
  25. {
  26.         CString strFormat, str;
  27.         strFormat.Format(TEXT("%%.%df"), precision);
  28.         //使用 strFormat.Format() 函数将格式字符串 "%%.%df" 中的 %df 替换为 precision 参数的值
  29.         str.Format(strFormat, value);
  30.         //使用 str.Format() 函数将格式化的字符串和输入的浮点数 value 结合在一起,生成最终的字符串
  31.         return str;
  32. }
  33. //将一个TCHAR类型的字符串转换为双精度浮点数。
  34. double CConvertUtil::ToDouble(const TCHAR* str)
  35. {
  36.         TCHAR* pszStop = NULL;
  37.         return 采用tcstod(str, &pszStop);
  38. }/*采用tcstod 函数将字符串转换为浮点数。
  39. 采用tcstod 是C++中用来将TCHAR类型的字符串转换为双精度浮点数的函数。
  40. 它需要两个参数:要转换的字符串和用于存储转换结束位置的指针。
  41. 在这里,我们没有用到 pszStop,所以它的值被设为 NULL。返回值就是转换后的浮点数。*/
  42. AcGePoint3d FymConverUtil::WcsPointToDcsPoint(const AcGePoint3d& point)
  43. {
  44.         AcGePoint3d pt;
  45.         struct resbuf rbFrom, rbTo;
  46.         rbFrom.restype = RTSHORT;
  47.         rbFrom.resval.rint = 0;
  48.         rbTo.restype = RTSHORT;
  49.         rbTo.resval.rint = 2;//对浮点数进行四舍五入
  50.         // 坐标系转换函数:wcs坐标、wcs标识符(0)、dcs标识符(2)、类型为点(0)、dcs坐标
  51.         acedTrans(asDblArray(point), &rbFrom, &rbTo, 0, asDblArray(pt));
  52.         return pt;
  53.        
  54. }
  55. AcGePoint3d FymConverUtil::UcsPointToWcsPoint(const AcGePoint3d& point)
  56. {
  57.         AcGePoint3d pt;
  58.         struct resbuf rbFrom, rbTo;
  59.         rbFrom.restype = RTSHORT;
  60.         rbFrom.resval.rint = 1;
  61.         rbTo.restype = RTSHORT;
  62.         rbTo.resval.rint = 0;
  63.         // 坐标系转换函数:ucs坐标、ucs标识符(1)、wcs标识符(0)、类型为点(0)、wcs坐标
  64.         acedTrans(asDblArray(point), &rbFrom, &rbTo, 0, asDblArray(pt));
  65.         return pt;
  66. }
  67. AcGePoint3d FymConverUtil::WcsPointToUcsPoint(const AcGePoint3d& point)
  68. {
  69.         AcGePoint3d pt;
  70.         struct resbuf rbFrom, rbTo;
  71.         rbFrom.restype = RTSHORT;
  72.         rbFrom.resval.rint = 0;
  73.         rbTo.restype = RTSHORT;
  74.         rbTo.resval.rint = 1;
  75.         // 坐标系转换函数:wcs坐标、ucs标识符(1)、wcs标识符(0)、类型为点(0)、ucs坐标
  76.         acedTrans(asDblArray(point), &rbFrom, &rbTo, 0, asDblArray(pt));
  77.         return pt;
  78. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-28 14:33 , Processed in 0.137038 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表