73 lines
1.5 KiB
Markdown
73 lines
1.5 KiB
Markdown
|
|
# Color
|
||
|
|
|
||
|
|
颜色结构体,支持 RGBA 浮点分量。
|
||
|
|
|
||
|
|
## 头文件
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
#include <XCEngine/Math/Color.h>
|
||
|
|
```
|
||
|
|
|
||
|
|
## 命名空间
|
||
|
|
|
||
|
|
`XCEngine::Math`
|
||
|
|
|
||
|
|
## 结构体定义
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
struct Color {
|
||
|
|
float r = 1.0f;
|
||
|
|
float g = 1.0f;
|
||
|
|
float b = 1.0f;
|
||
|
|
float a = 1.0f;
|
||
|
|
};
|
||
|
|
```
|
||
|
|
|
||
|
|
分量范围: 0.0f ~ 1.0f
|
||
|
|
|
||
|
|
## 静态工厂方法
|
||
|
|
|
||
|
|
| 方法 | 返回值 | 描述 |
|
||
|
|
|------|--------|------|
|
||
|
|
| `White()` | `Color` | (1, 1, 1, 1) |
|
||
|
|
| `Black()` | `Color` | (0, 0, 0, 1) |
|
||
|
|
| `Red()` | `Color` | (1, 0, 0, 1) |
|
||
|
|
| `Green()` | `Color` | (0, 1, 0, 1) |
|
||
|
|
| `Blue()` | `Color` | (0, 0, 1, 1) |
|
||
|
|
| `Yellow()` | `Color` | (1, 1, 0, 1) |
|
||
|
|
| `Cyan()` | `Color` | (0, 1, 1, 1) |
|
||
|
|
| `Magenta()` | `Color` | (1, 0, 1, 1) |
|
||
|
|
| `Clear()` | `Color` | (0, 0, 0, 0),透明黑 |
|
||
|
|
|
||
|
|
## 静态方法
|
||
|
|
|
||
|
|
| 方法 | 返回值 | 描述 |
|
||
|
|
|------|--------|------|
|
||
|
|
| `Lerp(a, b, t)` | `Color` | 颜色线性插值 |
|
||
|
|
|
||
|
|
## 实例方法
|
||
|
|
|
||
|
|
| 方法 | 返回值 | 描述 |
|
||
|
|
|------|--------|------|
|
||
|
|
| `ToRGBA()` | `uint32_t` | 转换为 32-bit RGBA (0xAABBGGRR) |
|
||
|
|
| `ToVector3()` | `Vector3` | 转换为 RGB (丢弃 alpha) |
|
||
|
|
| `ToVector4()` | `Vector4` | 转换为 RGBA |
|
||
|
|
|
||
|
|
## 运算符
|
||
|
|
|
||
|
|
| 运算符 | 描述 |
|
||
|
|
|--------|------|
|
||
|
|
| `operator+(Color, Color)` | 颜色相加 |
|
||
|
|
| `operator-(Color, Color)` | 颜色相减 |
|
||
|
|
| `operator*(Color, float)` | 颜色乘以标量 |
|
||
|
|
| `operator/(Color, float)` | 颜色除以标量 |
|
||
|
|
|
||
|
|
## 使用示例
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
Color red = Color::Red();
|
||
|
|
Color lerped = Color::Lerp(red, Color::Blue(), 0.5f);
|
||
|
|
uint32_t rgba = lerped.ToRGBA();
|
||
|
|
Vector4 v4 = lerped.ToVector4();
|
||
|
|
```
|