ObjectArx 设置填充透明度问题

作者: admin 分类: C++,CAD,ObjectARX 发布时间: 2022-01-04 23:25

2021081617415273.jpeg

初始化透明度参数AcCmTransparency对象时,需要调用setAlpha设置透明度值,这里传入的值是0~255,但cad特性面板上显示的是0~90,且经过测试发现,传入值与特性面板显示的值也是不同的,比如传入90,显示64,百度搜索了个寂寞,最后还是在谷歌找到了答案,原来设置的值和特性面板显示的值有个转换关系:int alpha = (int)(((255 – value) * 100) / 255);

所以要在设置透明度之前把值做下转换,像这样

// 设置填充透明度

AcCmTransparency tran;

tran.setMethod(AcCmTransparency::kByAlpha);

int alpha = (int)(255 – ((255 * opacity) / 100));

tran.setAlpha(alpha);

Acad::ErrorStatus es = pHatch->setTransparency(tran);

这样就能和特性面板上的值对应上了。(不过整数除法可能会丢失精度,肯能会有1误差) 

————————————————

版权声明:本文为CSDN博主「阿达和自己」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_28742901/article/details/119738432

标签云