找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 224|回复: 0

ObjectArx 设置填充透明度问题

[复制链接]

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-2-23 16:11:50 | 显示全部楼层 |阅读模式
初始化透明度参数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误差)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-28 14:29 , Processed in 0.123109 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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