2019年4月11日 星期四

Week08_Summer

今日目標:

(1)主題:貼圖 Texture
(2)範例:Texture.exe
(3)實作:OpenCV
(4)實作:OpenCV+OpenGL貼圖
(5)期中考:10行OpenGL程式



下載"win32"、"data"、"glut32.dll" 三個檔案並解壓縮放入對應資料夾中



 02 至windows/Texture.exe試試看貼圖的剪貼
可移動 glTexCoord2f(tx,ty); 看看剪貼



 03 上網查詢OpenCV 2.1 至網頁下載 OpenCV-2.1.0-win32-vs2008.exe











 05 建立一個GLUT檔案,修改程式碼並修改相關設定
到Bulid Options/Search directories\Compiler 中 Add → C:\OpenCV2.1\include
到Bulid Options/Search directories\Linker 中 Add → C:\OpenCV2.1\lib
Bulid Options\Linker settings 中 Add → cv210、cxcore210、highgui210




  貼圖修改的程式碼:  

#include <GL/glut.h>
#include <opencv/highgui.h>   ///貼圖需要
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glutSolidTeapot(0.3);
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
     IplImage * img = cvLoadImage("earth.jpg");   ///貼圖需要
     cvShowImage("opencv Window",img);    ///貼圖需要
     cvWaitKey(0);   ///貼圖需要
     glutInit(&argc, argv);
     glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
     glutCreateWindow("week08");
     glutDisplayFunc(display);
     glutMainLoop();
}




  期中考洩題100%:  

glPushMatrix();   ///備份矩陣

    glRotatef(angle,x.y.z);      ///旋轉
    glTranslatef(x,y,z);           ///移動
    glScalef(x,y,z);                 ///縮放
    
    glBegin(GL_POLYGON);      ///開始畫
        glColor3f(r,g,b);                 ///顏色、色彩
        glTexCoord2f(tx,ty);          ///貼圖座標
        glNormal3f(nx,ny,nz);       ///打光的法向量
        glVertex3f(x,y,z);              ///頂點
   glEnd();                                 ///結束畫

glPopMatrix();   ///還原矩陣

沒有留言:

張貼留言