找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[每日一码] ARX点表比较函数等

[复制链接]

1

主题

0

回帖

43

积分

管理员

积分
43
发表于 2024-3-14 20:09:42 | 显示全部楼层 |阅读模式
  1. //点表比较函数,配合std::sort使用
  2. //点按xyz排序,小写字母表示从小到大排序,大写则从大到小排序,在前的字母先排序
  3. int cmp采用xyz (AcGePoint3d p1,AcGePoint3d p2)
  4. {
  5.         if (p1.x != p2.x)
  6.                 return p1.x < p2.x?1:0;
  7.         else if (p1.y != p2.y)
  8.                 return p1.y < p2.y?1:0;
  9.         else
  10.                 return p1.z < p2.z?1:0;
  11. }
  12. int cmp采用xYz (AcGePoint3d p1,AcGePoint3d p2)
  13. {
  14.         if (p1.x != p2.x)
  15.                 return p1.x < p2.x?1:0;
  16.         else if (p1.y != p2.y)
  17.                 return p1.y > p2.y?1:0;
  18.         else
  19.                 return p1.z < p2.z?1:0;
  20. }
  21. int cmp采用xYZ (AcGePoint3d p1,AcGePoint3d p2)
  22. {
  23.         if (p1.x != p2.x)
  24.                 return p1.x < p2.x?1:0;
  25.         else if (p1.y != p2.y)
  26.                 return p1.y > p2.y?1:0;
  27.         else
  28.                 return p1.z > p2.z?1:0;
  29. }
  30. int cmp采用xyZ (AcGePoint3d p1,AcGePoint3d p2)
  31. {
  32.         if (p1.x != p2.x)
  33.                 return p1.x < p2.x?1:0;
  34.         else if (p1.y != p2.y)
  35.                 return p1.y < p2.y?1:0;
  36.         else
  37.                 return p1.z > p2.z?1:0;
  38. }
  39. int cmp采用XYZ (AcGePoint3d p1,AcGePoint3d p2)
  40. {
  41.         if (p1.x != p2.x)
  42.                 return p1.x > p2.x?1:0;
  43.         else if (p1.y != p2.y)
  44.                 return p1.y > p2.y?1:0;
  45.         else
  46.                 return p1.z > p2.z?1:0;
  47. }
  48. int cmp采用XyZ (AcGePoint3d p1,AcGePoint3d p2)
  49. {
  50.         if (p1.x != p2.x)
  51.                 return p1.x > p2.x?1:0;
  52.         else if (p1.y != p2.y)
  53.                 return p1.y < p2.y?1:0;
  54.         else
  55.                 return p1.z > p2.z?1:0;
  56. }
  57. int cmp采用Xyz (AcGePoint3d p1,AcGePoint3d p2)
  58. {
  59.         if (p1.x != p2.x)
  60.                 return p1.x > p2.x?1:0;
  61.         else if (p1.y != p2.y)
  62.                 return p1.y < p2.y?1:0;
  63.         else
  64.                 return p1.z < p2.z?1:0;
  65. }
  66. int cmp采用XYz (AcGePoint3d p1,AcGePoint3d p2)
  67. {
  68.         if (p1.x != p2.x)
  69.                 return p1.x > p2.x?1:0;
  70.         else if (p1.y != p2.y)
  71.                 return p1.y > p2.y?1:0;
  72.         else
  73.                 return p1.z < p2.z?1:0;
  74. }
  75. int cmp采用xy (AcGePoint3d p1,AcGePoint3d p2)
  76. {
  77.         if (p1.x != p2.x)
  78.                 return p1.x < p2.x?1:0;
  79.         else
  80.                 return p1.y < p2.y?1:0;        
  81. }
  82. int cmp采用xY (AcGePoint3d p1,AcGePoint3d p2)
  83. {
  84.         if (p1.x != p2.x)
  85.                 return p1.x < p2.x?1:0;
  86.         else
  87.                 return p1.y > p2.y?1:0;        
  88. }
  89. int cmp采用Xy (AcGePoint3d p1,AcGePoint3d p2)
  90. {
  91.         if (p1.x != p2.x)
  92.                 return p1.x > p2.x?1:0;
  93.         else
  94.                 return p1.y < p2.y?1:0;        
  95. }
  96. int cmp采用XY (AcGePoint3d p1,AcGePoint3d p2)
  97. {
  98.         if (p1.x != p2.x)
  99.                 return p1.x > p2.x?1:0;
  100.         else
  101.                 return p1.y > p2.y?1:0;        
  102. }
  103. int cmp采用x(AcGePoint3d p1,AcGePoint3d p2)
  104. {
  105.         return p1.x < p2.x?1:0;
  106. }
  107. int cmp采用X(AcGePoint3d p1,AcGePoint3d p2)
  108. {
  109.         return p1.x > p2.x?1:0;
  110. }
  111. int cmp采用y(AcGePoint3d p1,AcGePoint3d p2)
  112. {
  113.         return p1.y < p2.y?1:0;
  114. }
  115. int cmp采用Y(AcGePoint3d p1,AcGePoint3d p2)
  116. {
  117.         return p1.y > p2.y?1:0;
  118. }
  119. int cmp采用z(AcGePoint3d p1,AcGePoint3d p2)
  120. {
  121.         return p1.z < p2.z?1:0;
  122. }
  123. int cmp采用Z(AcGePoint3d p1,AcGePoint3d p2)
  124. {
  125.         return p1.z > p2.z?1:0;
  126. }
  127. int cmp采用YX (AcGePoint3d p1,AcGePoint3d p2)
  128. {
  129.         if (p1.y != p2.y)
  130.                 return p1.y > p2.y?1:0;
  131.         else
  132.                 return p1.x > p2.x?1:0;        
  133. }
  134. int cmp采用Yx (AcGePoint3d p1,AcGePoint3d p2)
  135. {
  136.         if (p1.y != p2.y)
  137.                 return p1.y > p2.y?1:0;
  138.         else
  139.                 return p1.x < p2.x?1:0;        
  140. }
  141. int cmp采用yx (AcGePoint3d p1,AcGePoint3d p2)
  142. {
  143.         if (p1.y != p2.y)
  144.                 return p1.y < p2.y?1:0;
  145.         else
  146.                 return p1.x < p2.x?1:0;        
  147. }
  148. int cmp采用yX (AcGePoint3d p1,AcGePoint3d p2)
  149. {
  150.         if (p1.y != p2.y)
  151.                 return p1.y < p2.y?1:0;
  152.         else
  153.                 return p1.x > p2.x?1:0;        
  154. }
  155. int cmp采用yxz (AcGePoint3d p1,AcGePoint3d p2)
  156. {
  157.         if (p1.y != p2.y)
  158.                 return p1.y < p2.y?1:0;
  159.         else if (p1.x != p2.x)
  160.                 return p1.x < p2.x?1:0;
  161.         else
  162.                 return p1.z < p2.z?1:0;
  163. }
  164. int cmp采用yXz (AcGePoint3d p1,AcGePoint3d p2)
  165. {
  166.         if (p1.y != p2.y)
  167.                 return p1.y < p2.y?1:0;
  168.         else if (p1.x != p2.x)
  169.                 return p1.x > p2.x?1:0;
  170.         else
  171.                 return p1.z < p2.z?1:0;
  172. }
  173. int cmp采用yXZ (AcGePoint3d p1,AcGePoint3d p2)
  174. {
  175.         if (p1.y != p2.y)
  176.                 return p1.y < p2.y?1:0;
  177.         else if (p1.x != p2.x)
  178.                 return p1.x > p2.x?1:0;
  179.         else
  180.                 return p1.z > p2.z?1:0;
  181. }
  182. int cmp采用yxZ (AcGePoint3d p1,AcGePoint3d p2)
  183. {
  184.         if (p1.y != p2.y)
  185.                 return p1.y < p2.y?1:0;
  186.         else if (p1.x != p2.x)
  187.                 return p1.x < p2.x?1:0;
  188.         else
  189.                 return p1.z > p2.z?1:0;
  190. }
  191. int cmp采用YXZ (AcGePoint3d p1,AcGePoint3d p2)
  192. {
  193.         if (p1.y != p2.y)
  194.                 return p1.y > p2.y?1:0;
  195.         else if (p1.x != p2.x)
  196.                 return p1.x > p2.x?1:0;
  197.         else
  198.                 return p1.z > p2.z?1:0;
  199. }
  200. int cmp采用YxZ (AcGePoint3d p1,AcGePoint3d p2)
  201. {
  202.         if (p1.y != p2.y)
  203.                 return p1.y > p2.y?1:0;
  204.         else if (p1.x != p2.x)
  205.                 return p1.x < p2.x?1:0;
  206.         else
  207.                 return p1.z > p2.z?1:0;
  208. }
  209. int cmp采用Yxz (AcGePoint3d p1,AcGePoint3d p2)
  210. {
  211.         if (p1.y != p2.y)
  212.                 return p1.y > p2.y?1:0;
  213.         else if (p1.x != p2.x)
  214.                 return p1.x < p2.x?1:0;
  215.         else
  216.                 return p1.z < p2.z?1:0;
  217. }
  218. int cmp采用YXz (AcGePoint3d p1,AcGePoint3d p2)
  219. {
  220.         if (p1.y != p2.y)
  221.                 return p1.y > p2.y?1:0;
  222.         else if (p1.x != p2.x)
  223.                 return p1.x > p2.x?1:0;
  224.         else
  225.                 return p1.z < p2.z?1:0;
  226. }
  227. int cmp采用2d采用xy (AcGePoint2d p1,AcGePoint2d p2)
  228. {
  229.         if (p1.x != p2.x)
  230.                 return p1.x < p2.x?1:0;
  231.         else
  232.                 return p1.y < p2.y?1:0;        
  233. }
  234. int cmp采用2d采用xY (AcGePoint2d p1,AcGePoint2d p2)
  235. {
  236.         if (p1.x != p2.x)
  237.                 return p1.x < p2.x?1:0;
  238.         else
  239.                 return p1.y > p2.y?1:0;        
  240. }
  241. int cmp采用2d采用Xy (AcGePoint2d p1,AcGePoint2d p2)
  242. {
  243.         if (p1.x != p2.x)
  244.                 return p1.x > p2.x?1:0;
  245.         else
  246.                 return p1.y < p2.y?1:0;        
  247. }
  248. int cmp采用2d采用XY (AcGePoint2d p1,AcGePoint2d p2)
  249. {
  250.         if (p1.x != p2.x)
  251.                 return p1.x > p2.x?1:0;
  252.         else
  253.                 return p1.y > p2.y?1:0;        
  254. }
  255. int cmp采用2d采用x (AcGePoint2d p1,AcGePoint2d p2)
  256. {
  257.         return p1.x < p2.x?1:0;
  258. }
  259. int cmp采用2d采用X(AcGePoint2d p1,AcGePoint2d p2)
  260. {
  261.         return p1.x > p2.x?1:0;
  262. }
  263. int cmp采用2d采用y (AcGePoint2d p1,AcGePoint2d p2)
  264. {
  265.         return p1.y < p2.y?1:0;
  266. }
  267. int cmp采用2d采用Y(AcGePoint2d p1,AcGePoint2d p2)
  268. {
  269.         return p1.y > p2.y?1:0;
  270. }
  271. int cmp采用2d采用YX(AcGePoint2d p1,AcGePoint2d p2)
  272. {
  273.         if (p1.y != p2.y)
  274.                 return p1.y > p2.y?1:0;
  275.         else
  276.                 return p1.x > p2.x?1:0;        
  277. }
  278. int cmp采用2d采用Yx (AcGePoint2d p1,AcGePoint2d p2)
  279. {
  280.         if (p1.y != p2.y)
  281.                 return p1.y > p2.y?1:0;
  282.         else
  283.                 return p1.x < p2.x?1:0;        
  284. }
  285. int cmp采用2d采用yx (AcGePoint2d p1,AcGePoint2d p2)
  286. {
  287.         if (p1.y != p2.y)
  288.                 return p1.y < p2.y?1:0;
  289.         else
  290.                 return p1.x < p2.x?1:0;        
  291. }
  292. int cmp采用2d采用yX (AcGePoint2d p1,AcGePoint2d p2)
  293. {
  294.         if (p1.y != p2.y)
  295.                 return p1.y < p2.y?1:0;
  296.         else
  297.                 return p1.x > p2.x?1:0;        
  298. }
  299. int cmp采用up (int &a,int &b)
  300. {
  301.         return a<b?1:0;
  302. }
  303. int cmp采用up (double &a,double &b)
  304. {
  305.         return a<b?1:0;
  306. }
  307. int cmp采用down (const int &a, const int &b)
  308. {
  309.         return a>b?1:0;
  310. }
  311. int cmp采用down (double &a,double &b)
  312. {
  313.         return a>b?1:0;
  314. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-11 00:35 , Processed in 0.113894 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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