如何在 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.dll和glut32.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;
}
输出: