ObjectArx 设置填充透明度问题
初始化透明度参数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误差)
页:
[1]