OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指

OpenGL找不到glut32.dll

首先要下载OpenGL的库函数

OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第1张图片

先来看报错 OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第2张图片

 这个报错是由于我们上面四个代码没有放刀系统库中。

解决方法:寻找自己电脑(我的是windows10)的 C:\Windows\SysWOW64 地址将上面的四个文件放入这个文件夹

OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第3张图片

这样报错就解决了!

利用OpenGL绘画一个机械手掌

  1. 下载OpenGL的库函数,glut.def  glut.h  glut32.dll  glut32.lib
  2. 打开vs2019,创建一个空项目OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第4张图片
  3. 将鼠标放在解决方案上面,右键,打开属性OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第5张图片

OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第6张图片

4.在属性中找到VC++目录,以及“包含目录”和“库目录”OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第7张图片

5.分别在“包含目录”和“库目录”中引入或加入OpenGL的库函数OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第8张图片

在库目录中找到自己下载OpenGL的文件夹,引入进去,或者将opengl的函数复制到已经引入的路径中(就是在下方的值)。

OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第9张图片

 6.别忘了上面的C:\Windows\SysWOW64 路径下也要复制你的OpenGL函数

7.这样就可以引入OpenGL函数了

#include 

 8.函数代码

// 机械臂1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include 
#include 
#include 

static int shoulder = 0, elbow = 0 , min0=0, min1 = 0, min2 = 0, min3 = 0, min4 = 0;
void drawFinger(float angle0, float angle1, float y, float z) {
    glPushMatrix();
    /*drawFinger(45 + min, -75 + min, 0.4 / 2 + min, -1.0 / 2 + min);
    drawFinger(20, -85, 0.4 / 2, .0);
    drawFinger(30, -75, 0.4 / 2, 1.0 / 2);
    drawFinger(-45, 75, -0.4 / 2, .0);*/

    //glTranslatef (1.0, y-0.4/8, -(z-1.0/8));
    glTranslatef(1.0, y, z);
    glRotatef((GLfloat)angle0, 0.0, 0.0, 1.0);
    glTranslatef(1.0 / 4, 0.0, 0.0);
    glPushMatrix();
    glScalef(2.0 / 4, 0.4 / 4, 1.0 / 4);
    glutWireCube(1.0);
    glPopMatrix();

    glTranslatef(1.0 / 4, 0.0, 0.0);
    glRotatef((GLfloat)angle1, 0.0, 0.0, 1.0);
    glTranslatef(1.0 / 4, 0.0, 0.0);
    glPushMatrix();
    glScalef(2.0 / 4, 0.4 / 4, 1.0 / 4);
    glutWireCube(1.0);
    glPopMatrix();

    glPopMatrix();
}

void init(void)
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glShadeModel(GL_FLAT);
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();

    glTranslatef(-1.0, 0.0, 0.0);
    glRotatef((GLfloat)shoulder, 0.0, 0.0, 1.0);
    glTranslatef(1.0, 0.0, 0.0);
    glPushMatrix();
    glScalef(2.0, 0.4, 1.0);
    glutWireCube(1.0);
    glPopMatrix();

    glTranslatef(1.0, 0.0, 0.0);
    glRotatef((GLfloat)elbow, 0.0, 0.0, 1.0);
    glTranslatef(1.0, 0.0, 0.0);
    glPushMatrix();
    glScalef(2.0, 0.4, 1.0);
    glutWireCube(1.0);
    glPopMatrix();

    drawFinger(45+min0+min1, -75+min0+min1, 0.4 / 2, -1.0 / 2);
    drawFinger(20 + min0+min2, -85 + min0+min2, 0.4 / 2, .0);
    drawFinger(30 + min0+min3, -75 + min0+min3, 0.4 / 2, 1.0 / 2);
    drawFinger(-45 - min0-min4, 75 - min0-min4, -0.4 / 2, .0);

    glPopMatrix();
    glutSwapBuffers();
}

void reshape(int w, int h)
{
    glViewport(0, 0, (GLsizei)w, (GLsizei)h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(65.0, (GLfloat)w / (GLfloat)h, 1.0, 20.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glTranslatef(0.0, 0.0, -8.0);
}

void keyboard(unsigned char key, int x, int y)
{
    switch (key) {
    case 's':   /*  s key rotates at shoulder  */
        shoulder = (shoulder + 5) % 360;
        //min = min + 1;
        glutPostRedisplay();
        break;
    case 'w':
        shoulder = (shoulder - 5) % 360;
        glutPostRedisplay();
        break;
    case 'e':  /*  e key rotates at elbow  */
        elbow = (elbow + 5) % 360;
        glutPostRedisplay();
        break;
    case 'd':
        elbow = (elbow - 5) % 360;
        glutPostRedisplay();
        break;
    case'f':
        min0 = min0 + 1;
        glutPostRedisplay();
        break;
    case'g':
        min0 = min0 - 1;
        glutPostRedisplay();
        break;

    case'z':
        min1 = min1 - 1;
        glutPostRedisplay();
        break;
    case'Z':
        min1 = min1 + 1;
        glutPostRedisplay();
        break;
    case'x':
        min2 = min2 - 1;
        glutPostRedisplay();
        break;
    case'X':
        min2 = min2 + 1;
        glutPostRedisplay();
        break;
    case'c':
        min3 = min3 - 1;
        glutPostRedisplay();
        break;
    case'C':
        min3 = min3 + 1;
        glutPostRedisplay();
        break;
    case'v':
        min4 = min4 - 1;
        glutPostRedisplay();
        break;
    case'V':
        min4 = min4 + 1;
        glutPostRedisplay();
        break;
    default:
        break;
    }
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(1000, 1000);
    glutInitWindowPosition(100, 100);
    glutCreateWindow(argv[0]);
    init();
    display();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutKeyboardFunc(keyboard);
    glutMainLoop();
    return 0;
}

运行文件,分别按"s" "w" "e" "d" "f" "g"看看有什么效果

"z""Z(大写)"  "x""X"  "c""C"  "v""V'分别是控制四个手指的哦

OpenGL找不到glut32.dll解决方法以及利用OpenGL绘画一个机械手掌并移动手指_第10张图片

 

你可能感兴趣的:(openGL,windows,opengl)