ObjectArx 设置填充透明度问题

本文介绍了解决在CAD中设置透明度时,如何将0~255的值转换为特性面板显示的0~90范围,并提供了一个计算公式。通过实例演示了如何确保设置的透明度与特性面板显示值一致,以避免精度损失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初始化透明度参数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误差) 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值