ccColor3B, ccColor4B, ccColor4F 颜色

本文介绍了Cocos2d-x中用于描述颜色的三种对象:ccColor3B、ccColor4B及ccColor4F,并展示了如何使用这些对象创建不同透明度的颜色。此外,还提供了将不同颜色对象类型相互转换的方法。

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

表示颜色有三种对象:

ccColor3B 用三个 0-255 的整数描述颜色,不带透明度
ccColor4B 用四个 0-255 的整数描述颜色,带透明度
ccColor4F 用四个 0.0 - 1.0 的浮点数描述颜色,带透明度


三种颜色对象的创建方式:

local color1 = ccc3(255, 0, 0) – 纯红色,三个参数分别是 Red(红)、Green(绿)、Blue(蓝)
local color2 = ccc4(0, 255, 0, 128) – 50% 透明度的绿色,最后一个参数是透明度
local color3 = ccc4f(0, 0, 1.0, 0.3) – 30% 透明度的蓝色


下列函数提供三种颜色对象的互相转换:

ccc4FFromccc3B() //(ccColor3B 转换为 ccColor4F)
ccc4FFromccc4B() //(ccColor4B 转换为 ccColor4F)
ccc4BFromccc4F() //(ccColor4F 转换为 ccColor4B)

// 统计滤波器 void MainWindow::doActionPCLStatisticalOutlierRemoval() { if (getSelectedEntities().size() != 1) { ccLog::Print(QStringLiteral("只能选择一个点云实体")); return; } ccHObject* entity = getSelectedEntities()[0]; ccPointCloud* ccCloud = ccHObjectCaster::ToPointCloud(entity); // ---------------------------读取数据到PCL---------------------------------- pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); cloud->resize(ccCloud->size()); for (int i = 0; i < cloud->size(); ++i) { const CCVector3* point = ccCloud->getPoint(i); cloud->points[i].x = point->x; cloud->points[i].y = point->y; cloud->points[i].z = point->z; } // -----------------------------对话框--------------------------------------- //float radius = QInputDialog::getDouble(this, QStringLiteral("参数设置"), QStringLiteral("搜索半径: "), 0.1, 0, 100, 4); // ----------------------------统计滤波器-------------------------------------- pcl::PointCloud<pcl::PointXYZ>::Ptr filtered(new pcl::PointCloud<pcl::PointXYZ>); pcl::StatisticalOutlierRemoval<pcl::PointXYZ> us; us.setInputCloud(cloud); //设置待滤波点云 us.setMeanK(50); //设置查询点近邻点的个数 us.setStddevMulThresh(1.0); //设置标准差乘数,来计算是否为离群点的阈值 //sor.setNegative(true); //默认false,保存内点;true,保存滤掉的离群点 us.filter(*filtered); // ------------------------PCL->CloudCompare-------------------------------- if (!filtered->empty()) { ccPointCloud* newPointCloud = new ccPointCloud(QString("StatisticalOutlierRemoval")); for (int i = 0; i < filtered->size(); ++i) { double x = filtered->points[i].x; double y = filtered->points[i].y; double z = filtered->points[i].z; newPointCloud->addPoint(CCVector3(x, y, z)); } newPointCloud->setRGBColor(ccColor::Rgba(255, 255, 255, 255)); newPointCloud->showColors(true); if (ccCloud->getParent()) { ccCloud->getParent()->addChild(newPointCloud); } ccCloud->setEnabled(false); addToDB(newPointCloud); refreshAll(); updateUI(); } else { ccCloud->setEnabled(true); // Display a warning message in the console dispToConsole("Warning: example shouldn&#39;t be used as is", ccMainAppInterface::WRN_CONSOLE_MESSAGE); } } 统计滤波器代码解析
07-02
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值