glTranslatef(x,y,z) 移動
glRotatef(x,y,z) 旋轉再來把上周的程式碼打開
glScalef(x,y,z) 物體大小(3)
程式碼是由下往上讀的
再來把上周的程式碼打開
2021電腦圖學 Computer Graphics 授課教師: 葉正聖 銘傳大學資訊傳播工程系 每週主題: 程式環境、點線面顏色、移動/旋轉/縮放與矩陣(Matrix)、階層性關節轉動(T-R-T)、做出機器人、打光、貼圖、glu/glut函式、鍵盤、滑鼠、計時器(timer)、讀入3D模型、粒子系統、聲音、特效、投影矩陣、攝影機與運鏡、機器人2.0、期末作品
glTranslatef(x,y,z) 移動
glRotatef(x,y,z) 旋轉再來把上周的程式碼打開
glScalef(x,y,z) 物體大小(3)
程式碼是由下往上讀的
再來把上周的程式碼打開
今天第一節課老師教我們用滑鼠點一個位置知道座標
程式碼:
#include<GL/glut.h>
#include<stdio.h>///為了printf()出現的 void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glutSolidTeapot(0.3); glutSwapBuffers();///交換兩倍的buffers } void mouse(int button,int state,int x,int y)///這裡是今天新學的程式碼TODO:左鍵、中鍵、右鍵 下、上,x、y座標
{ printf("button: %d state: %d x: %d y: %d\n",button,state,x,y); } int main(int argc, char *argv[]) { glutInit(&argc, argv);///glut初始設定 glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("08160093"); glutDisplayFunc(display); glutMouseFunc( mouse );///註冊mouse的函式 glutMainLoop();
1.打開OPENGL&GULT
2.打開兩個程式碼
3.修改GULT內的程式碼
程式碼如下:
#include <GL/glut.h> ///使用GLUT外掛
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); ///清背景
glutSolidTeapot(0.3);///畫茶壺
glutSwapBuffers(); ///更新畫面
}
int main(int argc, char *argv[]) ///main( )函式
{
glutInit(&argc, argv); ///(1)Init初始化GULT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///(2)Init初始化Display功能(色彩|兩倍放大|3D深度)
glutCreateWindow("08160440");///(3)建立GULT視窗("")為視窗名稱
glutDisplayFunc(display);///(4)準備Display函式
glutMainLoop();///(5)主要函式
}
圖:
#include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) { if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...