2014年4月10日 星期四

Week 08

#include <GL/glut.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
GLuint id;
float rot=0;
GLUquadric * quad=NULL;
void display()
{
 glEnable(GL_DEPTH_TEST);
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glPushMatrix();
 
  glRotatef(90,1,0,0);
  glRotatef(rot,0,0,1);
  gluQuadricTexture(quad, true);
  gluSphere(quad,1,30,30);
   
 glPopMatrix();
 glutSwapBuffers();
}
void idle()
{
  rot++;
  glutPostRedisplay();
}
int main()
{
 glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
 glutCreateWindow("01160803");
 glutDisplayFunc(display);
 glutIdleFunc(idle);
 
 IplImage * img = cvLoadImage("earth.jpg");
 cvCvtColor(img,img,CV_BGR2RGB);

 glEnable(GL_TEXTURE_2D);
 glGenTextures(1,&id);
 glBindTexture(GL_TEXTURE_2D,id);
 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_LINEAR);
 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_LINEAR);
 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR);
 glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,img->width,img->height,0,GL_RGB,GL_UNSIGNED_BYTE,img->imageData);

 quad = gluNewQuadric();
 glutMainLoop();
 return 0;

}







這週的程式可以讓地球旋轉,而且是依照正常的角度去旋轉,不過我做的途中有遇到一點小困難,我下載的地球JPG檔無法開啟,好像是因為我下載的圖檔不是真的JPG檔,害我卡住卡了很久!

沒有留言:

張貼留言