第七周
跟上禮拜一樣下載 解壓縮
這次是打開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();
}













沒有留言:
張貼留言