vcg.vertex.Color

vcg.vertex.Color是VCGLIB库中定义的一个类,代表顶点颜色,提供了颜色相关的方法和属性。

方法

Color()

构造函数,创建一个默认颜色为黑色的顶点颜色对象。

Color(const T & _r, const T & _g, const T & _b)

构造函数,创建一个指定颜色的顶点颜色对象。

参数:

  • _r:红色分量的值,范围为[0, 255]。
  • _g:绿色分量的值,范围为[0, 255]。
  • _b:蓝色分量的值,范围为[0, 255]。

static Color Interpolate(const Color &c1, const Color &c2, float alpha)

静态方法,计算两个颜色之间的插值颜色。

参数:

  • c1:要插值的第一个颜色。
  • c2:要插值的第二个颜色。
  • alpha:插值因子,范围为[0,1],表示颜色c1的权重,颜色c2的权重为1-alpha。

返回值:插值后的颜色对象。

float Luminance()

方法,计算该颜色的亮度值。

返回值:亮度值,范围为[0,1],每个分量的权重为0.299、0.587和0.114。

属性

vcg.vertex.Color类的属性可以直接访问和修改。

T rT gT b

三个属性分别代表了颜色的红、绿、蓝分量,值的范围为[0, 255]。

示例代码

创建颜色对象

vcg::Color4b color1(255, 0, 0); // 创建一个红色颜色对象
vcg::Color4b color2(0, 255, 0); // 创建一个绿色颜色对象
vcg::Color4b color3; // 创建一个默认颜色(黑色)颜色对象

计算插值颜色

vcg::Color4b color1(255, 0, 0); // 创建一个红色颜色对象
vcg::Color4b color2(0, 255, 0); // 创建一个绿色颜色对象
vcg::Color4b interpolatedColor = vcg::Color4b::Interpolate(color1, color2, 0.5f); // 计算红色和绿色的平均颜色(黄色)

计算亮度值

vcg::Color4b color(255, 128, 0); // 创建一个橙色颜色对象
float luminance = color.Luminance(); // 计算颜色的亮度值