最小化的三角形渲染示例
状态:✅ 已实现(框架层)
学习难度:⭐ 入门级
/\
/ \
/____\
一个彩色旋转的三角形,顶点颜色为红、绿、蓝,支持交互控制。
- ✅ 绘制彩色三角形
- ✅ 自动旋转动画(45度/秒)
- ✅ 平滑的顶点颜色插值
- ✅ 空格键:暂停/继续旋转
- ✅ 上/下箭头:放大/缩小三角形
- ✅ R 键:重置状态
float vertices[9] = {
0.0f, 0.5f, 0.0f, // 顶部
-0.5f, -0.5f, 0.0f, // 左下
0.5f, -0.5f, 0.0f // 右下
};
float colors[9] = {
1.0f, 0.0f, 0.0f, // 红色
0.0f, 1.0f, 0.0f, // 绿色
0.0f, 0.0f, 1.0f // 蓝色
};float angle = rotation * 3.14159f / 180.0f;
float cosA = std::cos(angle);
float sinA = std::sin(angle);
// 旋转矩阵应用
transformedVertices[i * 3 + 0] = x * cosA - y * sinA;
transformedVertices[i * 3 + 1] = x * sinA + y * cosA;renderer->drawTriangle(transformedVertices, colors);- CMake 3.24+
- C++20 编译器
- Native 运行容器已构建
# 1. 进入组件目录
cd examples/cpp/triangle
# 2. 创建构建目录
mkdir build
cd build
# 3. 配置 CMake
cmake ..
# 4. 构建
cmake --build .# 使用 Native 容器运行
cd ../../../../native/build
./bitui_native.exe --component ../../examples/cpp/triangle/build/triangle.dll-
组件结构
- IComponent 接口实现
- 生命周期管理(Init → Update → Render → Destroy)
- 组件导出宏使用
-
渲染基础
- 顶点数据组织
- 颜色数据定义
- 基础图形绘制
-
输入处理
- 键盘输入查询
- 按键状态检测(按下/刚按下)
- 交互式控制
-
数学变换
- 2D 旋转矩阵
- 缩放变换
- 角度和弧度转换
class TriangleComponent : public BitHCI::IComponent {
private:
// 运行时接口
BitHCI::IRenderer* renderer;
BitHCI::IInput* input;
BitHCI::IWindow* window;
// 组件状态
float rotation;
float scale;
bool isPaused;
// 几何数据
float vertices[9];
float colors[9];
public:
void onInit(...) override; // 初始化
void onUpdate(float dt) override; // 更新
void onRender() override; // 渲染
void onDestroy() override; // 清理
};float colors[9] = {
1.0f, 1.0f, 0.0f, // 黄色
0.0f, 1.0f, 1.0f, // 青色
1.0f, 0.0f, 1.0f // 品红
};rotation += deltaTime * 90.0f; // 90度/秒(更快)float pulse = 1.0f + 0.2f * std::sin(rotation * 0.1f);
scale = scale * pulse;A: 确保 include_directories 路径正确:
include_directories(${CMAKE_SOURCE_DIR}/../../../native/include)A: 检查是否正确使用了 BITHCI_COMPONENT 宏。
A: 确认 deltaTime 参数是否正确传递,检查 isPaused 状态。
| 指标 | 数值 |
|---|---|
| 顶点数 | 3 |
| 三角形数 | 1 |
| 绘制调用 | 1 |
| 内存占用 | < 1KB |
| CPU 占用 | 极低 |
作者:Bit Project 团队
创建日期:2025-10-11
组件版本:v0.0.1
难度等级:⭐ 入门级