1 std_msgs::ColorRGBA
定义如下,其中rgb三个参数范围为
float32 r
float32 g
float32 b
float32 a
r,指的是红色值(red);g,指的是绿色值(green);b,指的是蓝色值(blue);a,指的是透明度(alpha)。
r、g、b这三个可以为整数,取值范围为0~255,也可以为百分比,取值范围为0%~100%或0~1;值越大,颜色越重。
参数a为透明度,跟opacity(不透明度)属性是一样的,取值范围为0.0~1.0,值越大越不透明;a为1时为完全不透明,与使用RGB相同,a为0时为完全透明。
c++使用示例:
std_msgs::ColorRGBA color;//std_msgs::ColorRGBA包含: r、g、b、a四个参数
color.a = 1.0;
color.r = x_1; color.g = x_2; color.b = x_3;//这里rgb的值均在0-100%之间,x_n自行取值
下面是一段c++代码,构建一个颜色列表函数,其余部分省略啦:
std_msgs::ColorRGBA color_my;//颜色
int color_order=0;//颜色顺序
//改变颜色,使颜色有尽可能多的种类
std_msgs::ColorRGBA change_color(){
int case_order=color_order%15;//10为颜色总的种类,根据下面case总数进行修改
switch (case_order) {
case 0:
color_my.r = 1; color_my.g = 0; color_my.b = 0; color_my.a=0.3;//红色+不透明度0.3
break;
case 1:
color_my.r = 1; color_my.g = 0; color_my.b = 0; color_my.a=0.6;//红色+不透明度0.6
break;
case 2:
color_my.r = 1; color_my.g = 0; color_my.b = 0; color_my.a=1;//红色+不透明度1
break;
case 3:
color_my.r = 0; color_my.g = 1; color_my.b = 0; color_my.a=0.3;//绿色+不透明度0.3
break;
case 4:
color_my.r = 0; color_my.g = 1; color_my.b = 0; color_my.a=0.6;//绿色+不透明度0.6
break;
case 5:
color_my.r = 0; color_my.g = 1; color_my.b = 0; color_my.a=1;//绿色+不透明度1
break;
case 6:
color_my.r = 0; color_my.g = 0; color_my.b = 1; color_my.a=0.3;//蓝色+不透明度0.3
break;
case 7:
color_my.r = 0; color_my.g = 0; color_my.b = 1; color_my.a=0.6;//蓝色+不透明度0.6
break;
case 8:
color_my.r = 0; color_my.g = 0; color_my.b = 1; color_my.a=1;//蓝色+不透明度1
break;
case 9:
color_my.r = 1; color_my.g = 0; color_my.b = 1; color_my.a=0.3;//紫色+不透明度0.3
break;
case 10:
color_my.r = 1; color_my.g = 0; color_my.b = 1; color_my.a=0.6;//紫色+不透明度0.6
break;
case 11:
color_my.r = 1; color_my.g = 0; color_my.b = 1; color_my.a=1;//紫色+不透明度1
break;
case 12:
color_my.r = 0; color_my.g = 1; color_my.b = 1; color_my.a=0.3;//青色+不透明度0.3
break;
case 13:
color_my.r = 0; color_my.g = 1; color_my.b = 1; color_my.a=0.6;//青色+不透明度0.6
break;
case 14:
color_my.r = 0; color_my.g = 1; color_my.b = 1; color_my.a=1;//青色+不透明度1
break;
}
return color_my;
}
下面是显示的三种颜色
参考链接:
std_msg ros wiki:
rgba相关介绍: