顯示具有 08160440_陳冠宇 標籤的文章。 顯示所有文章
顯示具有 08160440_陳冠宇 標籤的文章。 顯示所有文章

2021年4月4日 星期日

宇的電腦圖學筆記WEEK05

今天第一節沒到,因為人太少老師先講了一個萬花尺
 再來老師講了上星期那個ransformation,就是上次車子可以讓它移動 旋轉 縮放的




glTranslatef(x,y,z) 移動

glRotatef(x,y,z) 旋轉再來把上周的程式碼打開

glScalef(x,y,z) 物體大小(3)

程式碼是由下往上讀的


再來把上周的程式碼打開

#include <GL/glut.h>///使用GLUT外掛 #include <math.h>///使用數學外掛 #include <stdio.h>///因為要printf int N=0,vx[3000],vy[3000]; float angle=0;///角度 void display(void) { glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);///清空 glPushMatrix();///備份矩陣 glRotatef(angle,0,0,1);///旋轉對z軸旋轉 glBegin(GL_LINE_LOOP); for(int i=0;i<N;i++){ glVertex2f((vx[i]-150)/150.0,-(vy[i]-150)/150.0); } ///減一半 除一半 glEnd(); glPopMatrix();///還原矩陣 glutSwapBuffers(); } void keyboard(unsigned char key, int x,int y) { angle++;///TODO display(); } void motion(int x,int y) { ///左,中,右,上,下,x座標,y座標 vx[N]=x; vy[N]=y; N++; display(); } int main(int argc, char *argv[])///main()函式 { glutInit(&argc, argv);///(1)Init初始化GLUT glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);///(2)Init初始化 Display 的功能 glutCreateWindow("08160075 吳英昭");///(3)建立GLUT視窗 glutDisplayFunc(display);///(4)準備display()函式 glutKeyboardFunc(keyboard);///按按鍵才會轉動 glutMotionFunc(motion);///註冊motion函式 glutMainLoop();///(5)主要程式 }


銘傳方唐鏡的電腦圖學筆記WEEK04

 今天第一節課老師教我們用滑鼠點一個位置知道座標

程式碼:

#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();


接下來是做一個類似小畫家可以拿來畫畫
程式碼:
#include <GL/glut.h> int N=0,vx[3000],vy[3000]; void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_LINE_LOOP); for(int i=0;i<N;i++){ glVertex2f( (vx[i]-150)/150.0,-(vy[i]-150)/150.0); } ///減一半,在除一半 減一半,在除一半,加負號 glEnd(); glutSwapBuffers();///交換兩倍的buffers } void motion (int x ,int y) { ///TODO2: mouse motion 再拖動他 vx[N]=x; vy[N]=y; ///把vx,vy的存起來 N++; display();///邊動mouse motion,邊畫display() } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitWindowSize(640,480); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("08160830"); glutDisplayFunc(display); glutMotionFunc( motion);///等一下要顯示的函示 glutMainLoop();///TODO :我們註冊mouse函式 }

2021年3月10日 星期三

小宇week03電腦圖學


 


今天第一件事情是創辦github的帳號並換頭貼 讚

再來是今天教畫圓
#include <GL/glut.h>///使用glut外掛
#include<math.h>///使用教學外掛
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glCOLOR3F(1,0,0);
glutSolidSphere(0.7,30,30);
glColor3f(1,1,0);
glutSolidSphere(0.5,30,30);
glutSolidSphere(0.5,30,30);
}
int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("Week03_circle");
glutDisplayFunc(display);
glutMainLoop();
}

2021年3月3日 星期三

銘傳方唐鏡的圖學筆記 week02

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)主要函式

}

圖:


2021年2月24日 星期三

小宇嘩啦啦 電腦圖學 week01

怎麼搞 opengl? 從codeblocks左上角file-new-project
打開後第一行要取名字 第二個問題放在哪裡[...]找位子
接下來點選下一步
最後執行build  & run  阿捏丟后



再來是 glut
一樣codeblocks 左上角file-new-project, glut

第一行打名字再來一樣存在桌面
從moodle下載freeglut在桌面
再從檔案中的lib找libfreeglut.a 改成libglut32.a
打開glut出現一個長方形的網頁可以把它關掉再按下一步就歐給了

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...