You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

raylib中DrawRectanglePro()无法渲染矩形问题求助

解决Raylib中DrawRectanglePro无法渲染旋转矩形的问题

你代码里的核心问题是旋转原点(origin参数)的设置错误。DrawRectanglePro的origin是矩形自身的相对锚点,不是屏幕绝对坐标。你把origin设为{400,400},会让这个10x10的矩形被旋转到屏幕外极远的位置,所以看不到。

修正方案

要正确显示旋转矩形,需要明确两个关键点:

  • origin参数:是矩形自身的相对坐标(比如左上角是{0,0},中心是{宽/2, 高/2})
  • 矩形位置:如果要让矩形在屏幕指定位置旋转,需要调整矩形的position,配合origin让旋转中心落在目标位置

修正后的代码

#include <iostream>
#include "raylib.h"

int main() {
    InitWindow(800, 800, "More Raylib Practice");
    SetWindowState(FLAG_VSYNC_HINT);
    
    while (!WindowShouldClose()) {
        BeginDrawing();
        ClearBackground(BLACK);
        
        DrawRectangle(10, 10, 10, 10, RED); // 正常渲染的矩形

        // 让矩形在屏幕中心(400,400)以自身中心旋转45度
        Rectangle rec = { 400 - 5, 400 - 5, 10, 10 }; // 调整左上角坐标,使矩形中心对齐屏幕中心
        DrawRectanglePro(rec, {5, 5}, 45.0f, WHITE); // origin设为矩形自身中心
        
        EndDrawing();
    }

    CloseWindow();
    return 0;
}

关键细节说明

  • 矩形的position是左上角坐标,所以要让中心落在(400,400),需要计算x = 400 - 宽度/2,y = 400 - 高度/2
  • origin = {5,5}对应10x10矩形的中心,旋转时会围绕这个点进行,这样旋转后的矩形会在屏幕中心显示

内容的提问来源于stack exchange,提问作者DAG3223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:06:25