2022年3月22日 星期二

新手上碌_week05

 主題:移動/旋轉/縮放/矩陣/鍵盤+滑鼠 模仿Maya,Unity的操作畫面

>>>>Rotate在Translate之前:公轉(像是繞著某點在轉)

>>>>Translate在Rotate之前:自轉


##1.按鍵盤同時顯示滑鼠座標

#include <GL/glut.h>

#include <stdio.h>

void display()

{

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glColor3f(1,1,0);

    glutSolidTeapot(0.3);

    glutSwapBuffers();

}

void keyboard(unsigned char key,int x,int y){   unsigned:沒有符號  char:字母

    printf("你按下了 %c 在 %d %d 座標\n",key,x,y);

}

int main(int argc,char**argv)

{

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week05 keyboard");


    glutDisplayFunc(display);

    glutKeyboardFunc(keyboard);///鍵盤控制

    glutMainLoop();

}


>>>有Bug,茶壺會瞬間移動(會從上次滑鼠停留的位置瞬移到新的滑鼠位置)




##2.加入滑鼠控制
glutKeyboardFunc(keyboard);鍵盤事件
glutMouseFunc(mouse);滑鼠控制位置
glutMotionFunc(motion);滑鼠移動
呼叫callBack函式

>>>>在mouse裡修正,讓茶壺開始的位置為上次停止的位置

##3.glScalef(x,y,z);縮放大小

glClearColor(R,B,G);清除背景並已某顏色填滿






沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...