注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

AutoCAD中的颜色和系统颜色之间的转换  

2014-04-03 21:51:08|  分类: ObjectARX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

使用ObjectARX.NET可以发现有一个命名空间为Autodesk.AutoCAD.Colors,该命名空间处理AutoCAD环境下的颜色,其中有一个Color类,同时我们也知道在.NET Framework 环境下的System.Drawing命名空间下,也有一个Color结构,这个主要是处理窗体和绘图的颜色的。有时候,我们需要在这两者之间进行变换,那么该如何操作呢?Autodesk的开发人员肯定想到了这一点,分别提供了一个属性和方法。

设想我们有两个颜色变量,ac和sc,分别表示AutoCAD中的颜色和系统中的颜色,请注意在作为右值的时候变量已经被正常初始化。

首先是AutoCAD下的颜色转系统颜色(ac->sc),利用ac的属性ColorValue返回一个System.Drawing.Color结构的实例:

sc=ac.ColorValue;

需要注意的是,Autodesk.AutoCAD.Colors.Color具有三个属性Red、Green、Blue,和系统颜色中的红、黄、蓝三色值一样,都是从0~255,但是不要试图使用如下语句创建一个系统颜色的实例,可能会失败:

sb = new System.Drawing.Color.FromArgb(ac.Red, ac.Green, ac.Blue);

然后是系统颜色转换为AutoCAD中的颜色(),这需要使用方法:

Autodesk.AutoCAD.Colors.Color.FromColor(System.Drawing.Color); 

因此转换语句可以这样写:

ac = Autodesk.AutoCAD.Colors.Color.FromColor(sc);

这样,互相转换的问题就能够解决了。

  评论这张
 
阅读(682)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017