找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1116|回复: 2

[日积月累]:从RGB得到cad颜色索引值

[复制链接]
发表于 2003-7-29 17:56:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

  1.   [FONT=courier new]
  2. int getNearestACI(COLORREF color)
  3. {
  4.         long acirgb, r,g,b;
  5.         long mindst = 2147483647L;
  6.         long dst = 0;
  7.         int minndx = 0;
  8.         long red=GetRValue(color);
  9.         long green=GetGValue(color);
  10.         long blue=GetBValue(color);
  11.         for ( int i = 1; i < 255; i++ ) {
  12.                 acirgb = acdbGetRGB ( i );
  13.                 r =GetRValue(acirgb);
  14.                 g =GetGValue(acirgb);
  15.                 b =GetBValue(acirgb);
  16.                
  17.                 dst = abs ( r-red) + abs ( g -green) + abs (b-blue);
  18.                 if ( dst < mindst ) {
  19.                         minndx = i;
  20.                         mindst = dst;
  21.                 }
  22.         }
  23.         return minndx;
  24.        
  25. }  [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-7-30 08:36:29 | 显示全部楼层
谢谢Echoyin 提供这个函数,
能不能再给一个由CAD的颜色索引值转换为RGB的函数。
谢谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-30 14:06:50 | 显示全部楼层
呵呵,不用客气,大家互相交流而已,贴出来,不好的地方请大家指点指点。。。。。。

  1.   [FONT=courier new]
  2. //功  能:从CAD的颜色得到RGB
  3. COLORREF CGlobal::GetColorFromIndex(int colorIndex)
  4. {
  5.         if(colorIndex < 0 || colorIndex > 255)
  6.         {
  7.                 ads_alert("传入的颜色号不在0~255之间!");
  8.                 return 0;
  9.         }
  10.        
  11.         BYTE R, G, B;
  12. #ifdef ARX_2002_dll
  13.         R = lpszRGBData[colorIndex*3+0];
  14.         G = lpszRGBData[colorIndex*3+1];
  15.         B = lpszRGBData[colorIndex*3+2];
  16. #else
  17.         long zhi = acdbGetRGB(colorIndex);
  18.         WORD LOW = LOWORD(zhi);
  19.         WORD HIG = HIWORD(zhi);
  20.         R = LOBYTE(LOW);
  21.         G = HIBYTE(LOW);
  22.         B = LOBYTE(HIG);
  23. #endif
  24.        
  25.         return RGB(R,G,B);
  26. }

  27.   [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-26 12:38 , Processed in 0.420814 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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