C++ 函数使用C++;

C++ 函数使用C++;,c++,opengl,geometry,C++,Opengl,Geometry,我尝试编写一个函数,生成一个矩形,该矩形将以下信息作为输入: topLeftPoint和所需矩形的(宽度和高度)。因此,它应该返回相应的顶点。我使用的是OpenGL坐标系 topLeftPoint可以是两个int或Vec2的简单结构 以下是我如何尝试解决此任务的示例: 我的代码有什么问题?我的最终形状看起来不像一个矩形。它看起来更像这样:猜测,像这样重新排序: float verticesOfRectangle[] = { in.x(), in.y() - h, in

我尝试编写一个函数,生成一个矩形,该矩形将以下信息作为输入:

topLeftPoint和所需矩形的(宽度和高度)。因此,它应该返回相应的顶点。我使用的是
OpenGL
坐标系

topLeftPoint可以是两个
int
Vec2
的简单结构

以下是我如何尝试解决此任务的示例:


我的代码有什么问题?我的最终形状看起来不像一个矩形。它看起来更像这样:

猜测,像这样重新排序:

float verticesOfRectangle[] =   
{  
   in.x(), in.y() - h,  
   in.x() + w, in.y() - h,  
   in.x(), in.y(),  
   in.x() + w, in.y(),  
}

猜测,按如下方式重新排序:

float verticesOfRectangle[] =   
{  
   in.x(), in.y() - h,  
   in.x() + w, in.y() - h,  
   in.x(), in.y(),  
   in.x() + w, in.y(),  
}
这将有助于您:

void glRecti(GLint x1, GLint y1, GLint x1+w, GLint y1-h);
顶点是矩形的两个对角端点
(x1,y1)
是最左上点,
(x1+w,y1-h)
是最右下点,
w
是矩形的宽度,
h
是矩形的高度

这将有助于您:

void glRecti(GLint x1, GLint y1, GLint x1+w, GLint y1-h);
顶点是矩形的两个对角端点
(x1,y1)
是最左上点,
(x1+w,y1-h)
是最右下点,
w
是矩形的宽度,
h
是矩形的高度


您是否使用glRect()来绘制?不清楚如何绘制这些顶点,但很可能您只需要对它们进行不同的排列。继续重新排序,直到找到正确的方法。感谢用户_Targaryen,我只是尝试构建我自己的函数,它必须是这样的,无论如何,非常感谢您提供快速快捷方式。您是否使用glRect()绘制?不清楚您是如何绘制这些顶点的,但很可能您只需要对它们进行不同的排列。继续重新排序,直到找到正确的方法。谢谢你的用户_Targryen,我只是尝试构建我自己的函数,它必须是这样的,无论如何,非常感谢你提供快速快捷方式