ros(20):std_msgs消息类型

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:

std_msgs - ROS Wiki

rgba相关介绍:

RGBA颜色 - CSS3 | 绿叶学习网

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值