📌  相关文章
📜  如何在 Windows 10 上使用 Visual Studio 2019 设置 OpenGL?

📅  最后修改于: 2022-05-13 01:57:03.605000             🧑  作者: Mango

如何在 Windows 10 上使用 Visual Studio 2019 设置 OpenGL?

OpenGL是一种 2D 和 3D 图形 API,可为各种计算机平台提供跨平台的应用程序编程接口。它独立于操作系统并具有透明的网络。应用程序开发人员使用它来开发 高性能和视觉上引人注目的图形软件应用程序。

先决条件

  • Visual Studio 2019(下载)

安装:

现在让我们进入 OpenGL 的设置。为此,请按照以下步骤操作:

第 1 步:首先我们必须下载适用于 windows10 的 Visual Studio 2019。

第 2 步:现在我们已经使用 Windows 安装程序从其下载的 .exe 文件中安装了 Visual Studio2019。

选择 Visual Stdio community 2019 并单击 Modify,现在选择所需的组件,如下图所示,然后单击install while Downloading

安装完成后需要一些时间重新启动计算机。

第 3 步:

  • 现在下载为英特尔平台预编译的 GLUT 头文件、.LIB 和 .DLL 文件,您只需从网站下载glutdlls37beta.zip文件。
  • 文件夹内的文件如下所示:

第4步:在此之后,我们必须按照以下说明复制文件:

  • 首先,将glut.h文件粘贴到:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\include\gl
  • 然后将glut.lib粘贴到:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\lib\64
  • 然后将glut32.lib 粘贴到:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\lib\86
  • 然后将glut.dllglut32.dll粘贴到:
C:\Windows\SysWOW64
  • 最后将glut32.dll复制到:
C:\Windows\System32 

请看下面的安装视频:

这是一个用于运行以检查它是否工作的示例代码

C++
#include 
#include
using namespace std;
int rx = 100, ry = 125;
int xCenter = 250, yCenter = 250;
 
void myinit(void)
{
    glClearColor(1.0, 1.0, 1.0, 0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}
 
void setPixel(GLint x, GLint y)
{
    glBegin(GL_POINTS);
    glVertex2i(x, y);
    glEnd();
}
void ellipseMidPoint()
{
    float x = 0;
    float y = ry;
    float p1 = ry * ry - (rx * rx) * ry + (rx * rx) * (0.25);
    float dx = 2 * (ry * ry) * x;
    float dy = 2 * (rx * rx) * y;
    glColor3ub(rand() % 255, rand() % 255, rand() % 255);
    while (dx < dy)
    {
        setPixel(xCenter + x, yCenter + y);
        setPixel(xCenter - x, yCenter + y);
        setPixel(xCenter + x, yCenter - y);
        setPixel(xCenter - x, yCenter - y);
        if (p1 < 0)
        {
            x = x + 1;
            dx = 2 * (ry * ry) * x;
            p1 = p1 + dx + (ry * ry);
        }
        else
        {
            x = x + 1;
            y = y - 1;
            dx = 2 * (ry * ry) * x;
            dy = 2 * (rx * rx) * y;
            p1 = p1 + dx - dy + (ry * ry);
        }
    }
    glFlush();
 
    float p2 = (ry * ry) * (x + 0.5) * (x + 0.5) + (rx * rx) * (y
        - 1) * (y - 1) - (rx * rx) * (ry * ry);
    glColor3ub(rand() % 255, rand() % 255, rand() % 255);
    while (y > 0)
    {
        setPixel(xCenter + x, yCenter + y);
        setPixel(xCenter - x, yCenter + y);
        setPixel(xCenter + x, yCenter - y);
        setPixel(xCenter - x, yCenter - y);
        if (p2 > 0)
        {
            x = x;
            y = y - 1;
            dy = 2 * (rx * rx) * y;
            p2 = p2 - dy + (rx * rx);
        }
        else
        {
            x = x + 1;
            y = y - 1;
            dy = dy - 2 * (rx * rx);
            dx = dx + 2 * (ry * ry);
            p2 = p2 + dx -
                dy + (rx * rx);
        }
    }
    glFlush();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 0.0, 0.0);
    glPointSize(2.0);
    ellipseMidPoint();
    glFlush();
}
int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitWindowSize(640, 480);
    glutInitWindowPosition(10, 10);
    glutCreateWindow("User_Name");
    myinit();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}


输出: