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
相关产品推荐
相关产品推荐

