2020年4月14日 星期二

weeeeeeeeeeek07

第七周


跟上禮拜一樣下載 解壓縮

這次是打開Texture

到moodle下載open cv




打開CodeBlocks設定Compiler

先到Compiler加入include

再到Linker加入lib

再到Linker settings裡面新增
cv210.cxcore210.highgui210



之後打開OpenGL專案加入OpenCV
圖片記得要放在freeglut 的bin裡面!

將將~~圖片就出來啦!
之後按隨意鍵就會跑出六個圖案的圖片喔!


最後將老師給的程式碼貼上再上網隨意找一張地球的圖片放到bin裡就可以啦!!!


瘋了!!!終於下課了~~



#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
void arm()
{
    glPushMatrix(); ///備份
        glScalef(1, 0.3 , 0.3); ///y,z變1/3
        glutSolidCube(0.5);
    glPopMatrix();   ///還原
}
float angle=0;
int dx;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();  ///右手
        glTranslatef(0.2, 0, 0);
        glRotatef(angle, 0, 0, 1);
        glTranslatef(0.25,0,0);
        glColor3f(1,0,0);
        arm();

        glPushMatrix();  ///備份
            glTranslatef(0.25, 0, 0);
            glRotatef(angle, 0, 0, 1);
            glTranslatef(0.25,0,0);
            glColor3f(1,1,0);
            arm();
        glPopMatrix();
    glPopMatrix();   ///還原
    glPushMatrix();  ///左手
        glTranslatef(-0.2, 0, 0);
        glRotatef(-angle, 0, 0, 1);
        glTranslatef(-0.25,0,0);
        glColor3f(1,0,0);
        arm();

        glPushMatrix();  ///備份
            glTranslatef(-0.25, 0, 0);
            glRotatef(-angle, 0, 0, 1);
            glTranslatef(-0.25,0,0);
            glColor3f(1,1,0);
            arm();
        glPopMatrix();
    glPopMatrix();   ///還原
    if(angle>60) dx=-1;
    if(angle<10) dx=1;
    angle += dx;
    glutSwapBuffers();

    glClearColor(0/255.0,0/255.0,0/255.0,1);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


    glBegin(GL_POLYGON);
    glColor3f(174/255.0, 213/255.0, 12/255.0);
    for(float angle=0; angle<=3.1415926*2; angle +=0.01)
        {
            glVertex2f(0.25*cos(angle),0.4*sin(angle)-0.1);
        }
    glEnd();

    glBegin(GL_POLYGON);
    glColor3f(197/255.0, 187/255.0,230/255.0);
    glVertex2f((116-150)/150.0, -(46-150)/150.0);
    glVertex2f((116-150)/150.0, -(111-150)/150.0);
    glVertex2f((192-150)/150.0, -(111-150)/150.0);
    glVertex2f((192-150)/150.0, -(46-150)/150.0);
    glEnd();

    glBegin(GL_POLYGON);
        glColor3f(255/255.0, 96/255.0, 175/255.0);
        for(float angle=0; angle<=3.1415926*2; angle +=0.01)
        {
            glVertex2f(0.1*cos(angle)-0.15,0.1*sin(angle)+0.5);
        }
    glEnd();

    glBegin(GL_POLYGON);
        glColor3f(255/255.0, 96/255.0, 175/255.0);
        for(float angle=0; angle<=3.1415926*2; angle +=0.01)
        {
            glVertex2f(0.1*cos(angle)+0.15,0.1*sin(angle)+0.5);
        }
    glEnd();

    glBegin(GL_POLYGON);
    glColor3f(112/255.0, 146/255.0,190/255.0);
    glVertex2f((128-150)/150.0, -(210-150)/150.0);
    glVertex2f((113-150)/150.0, -(260-150)/150.0);
    glVertex2f((140-150)/150.0, -(263-150)/150.0);
    glEnd();

    glBegin(GL_POLYGON);
    glColor3f(112/255.0, 146/255.0,190/255.0);
    glVertex2f((170-150)/150.0, -(210-150)/150.0);
    glVertex2f((155-150)/150.0, -(260-150)/150.0);
    glVertex2f((185-150)/150.0, -(263-150)/150.0);
    glEnd();


    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week08");
    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}




沒有留言:

張貼留言