主题
Color
Color 是 RGBA 颜色类型,用于表示带透明度的颜色值。它提供红、绿、蓝、不透明度四个分量,并支持颜色插值、分量极值比较等运算。
概览
Color 是 RGBA 颜色类型,用于表示带透明度的颜色值。它提供红、绿、蓝、不透明度四个分量,并支持颜色插值、分量极值比较等运算。
可通过
Color.New(r, g, b, a)构造
代码示例
构造 Color 并读写 RGBA 分量
lua
-- @runtime client
-- 使用 Color.New 构造一个不透明的红色
local red = Color.New(255, 0, 0, 255)
-- 读取各分量并打印
print(string.format("红色: r=%d, g=%d, b=%d, a=%d", red.r, red.g, red.b, red.a))
-- 修改 alpha 分量实现半透明效果
red.a = 128
print(string.format("半透明红色: r=%d, g=%d, b=%d, a=%d", red.r, red.g, red.b, red.a))
-- 使用简写构造一个半透明绿色
local green = Color(0, 255, 0, 128)
print(string.format("半透明绿色: r=%d, g=%d, b=%d, a=%d", green.r, green.g, green.b, green.a))函数
Intrp
签名:Intrp(lhs: Color, rhs: Color, u: Float) -> Color
在两个颜色之间进行线性插值,返回插值后的新颜色。
| 参数 | 类型 | 说明 |
|---|---|---|
lhs | Color | |
rhs | Color | |
u | Float | 插值因子 [0, 1] |
返回值 Color
线性插值两个颜色
lua
-- @runtime client
-- 构造两个颜色
local red = Color(255, 0, 0, 255) -- 不透明红色
local blue = Color(0, 0, 255, 255) -- 不透明蓝色
-- 在红色和蓝色之间进行 50% 插值,得到紫色
local purple = Color.Intrp(red, blue, 0.5)
print("插值结果 R:", purple.r, "G:", purple.g, "B:", purple.b, "A:", purple.a)Step
签名:Step(lhs: Color, rhs: Color) -> Color
逐分量进行阶跃比较,若 lhs 分量大于等于 rhs 分量则返回 1,否则返回 0,结果仍为 Color 类型。
| 参数 | 类型 | 说明 |
|---|---|---|
lhs | Color | |
rhs | Color |
返回值 Color
逐分量阶跃比较
lua
-- @runtime client
-- 构造两个颜色
local color1 = Color(100, 200, 50, 255)
local color2 = Color(150, 100, 200, 128)
local stepColor = Color.Step(color1, color2)
print("阶跃结果 R:", stepColor.r, "G:", stepColor.g, "B:", stepColor.b, "A:", stepColor.a)Min
签名:Min(lhs: Color, rhs: Color) -> Color
逐分量比较两个颜色,返回每个分量取最小值的新颜色。
| 参数 | 类型 | 说明 |
|---|---|---|
lhs | Color | |
rhs | Color |
返回值 Color
逐分量取最小值
lua
-- @runtime client
-- 构造两个颜色
local color1 = Color(100, 200, 50, 255)
local color2 = Color(150, 100, 200, 128)
-- 逐分量取最小值
local minColor = Color.Min(color1, color2)
print("最小值颜色 R:", minColor.r, "G:", minColor.g, "B:", minColor.b, "A:", minColor.a)Max
签名:Max(lhs: Color, rhs: Color) -> Color
逐分量比较两个颜色,返回每个分量取最大值的新颜色。
| 参数 | 类型 | 说明 |
|---|---|---|
lhs | Color | |
rhs | Color |
返回值 Color
逐分量取最大值
lua
-- @runtime client
-- 构造两个颜色
local color1 = Color(100, 200, 50, 255)
local color2 = Color(150, 100, 200, 128)
-- 逐分量取最大值
local maxColor = Color.Max(color1, color2)
print("最大值颜色 R:", maxColor.r, "G:", maxColor.g, "B:", maxColor.b, "A:", maxColor.a)属性
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
r | Float | - | 颜色的红色分量,取值范围为 0 到 255。 |
g | Float | - | 颜色的绿色分量,取值范围为 0 到 255。 |
b | Float | - | 颜色的蓝色分量,取值范围为 0 到 255。 |
a | Float | - | 颜色的不透明度分量,取值范围为 0 到 255。 |
