顯示具有 Week07 標籤的文章。 顯示所有文章
顯示具有 Week07 標籤的文章。 顯示所有文章

2018年1月16日 星期二

Week 7 滑鼠移動光源

1




const刪去便可更改光源位置

2 motion 裡加入以下程式碼


按住滑鼠移動便可移動光源

2018年1月2日 星期二

abcqq week07

1.打光程式碼

GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; //const刪掉加入


void motion(int x,int y) //跟拖曳很像
{
    light_position[0]=(x-150)/150.0*2;
    light_position[1]=-(y-150)/150.0*2;
    glLightfv(GL_LIGHT0, GL_POSITION, light_position);
    glutPostRedisplay();
}
glutMotionFunc(motion);

從左邊打光


從右邊打光

2017年12月7日 星期四

周欣融 week07

*因本週生病請假,以下筆記是參考老師FB講義及同學課堂筆記而成
GLUT demo code 講解
  1. 可以用鍵盤(in key function)的加號和減號控制圖形的經線和緯線(in display function),分別以slicesstacks控制


  2. resize function: 用來等比例的放大和縮小圖形,比例透過變數ar控制
  3. idle function: 在電腦有空的時候呼叫glutPostRedisplay(),用來更新畫面
-----------------------------------------------------------------------------------------------------------------------------

滑鼠移動改變打光

  1. 找到第129行 const GLfloat light_position[],刪除const,使之可以被改變
  2. 新增motion function,使滑鼠移動時可以影響光源,並重新更新畫面

  3. 最後在main function裡面新增glutMotionFunc(motion),呼叫寫好的motion程式
結果


陳陞凱的計圖筆記WEEK07

打開glut專案擋


尋找main中之 glLightfv函式

加入
void motion(int x,int y)
{
    light_position[0]= (x-150)/150.0*2;
    light_position[1]=-(y-150)/150.0*2;
    glLightfv(GL_LIGHT0,GL_POSITION,light_position);
    glutPostRedisplay();
}

執行後就可以用滑鼠調整光源

2017年11月30日 星期四

我只是一只可愛的麻雀(._.)Week07 筆記

第七週主題-光源

1. 照之前的方式開一個glut的專案檔
2. 程式碼

首先解釋部分程式碼功能

【resize】保持圖畫不變形




【key】按鍵功能



【idle】閒置時要不停地作畫



*開始修改程式*

把光源的position const拿掉 才能修改


新增motion函式


在main裡用motion函式


*執行程式*

原圖


使用滑鼠拖曳更改光源位置

2017年11月8日 星期三

瑋倫WEEK7

 Lighting打光

void motion(int x,int y)
{
    light_position[0]= (x-150)/150.0*2;
    light_position[1]=-(y-150)/150.0*2;
    glLightfv(GL_LIGHT0,GL_POSITION,light_position);
    glutPostRedisplay();
}
滑鼠可改變光源

2017年11月2日 星期四

James的圖學筆記week07

設置光源參數:
void glLightfv ( GLenum lightGLenum pnameconst GLfloat * params);
void glLightiv ( GLenum lightGLenum pname, const GLint * params);
params:指定光源光的參數pname將被設置為的值或值的指標

void motion(int x,int y)
{
    light_position[0]=(x-150)/150.0*2;
    light_position[1]=-(y-150)/150.0*2;
    glLightfv(GL_LIGHT0,GL_POSITION,light_position);
    glutPostRedisplay();
}

俊凱的Week07筆記

1.作業互評
2.Mouse-Light打光
步驟一:打開glut專案擋
步驟二:尋找main中之 glLightfv函式
步驟三:尋找相關函式的宣告變數
步驟四:將GLfloat light_position[]函式前的const去除,才可以進行修正
步驟五:新增motion函式,並在main加入glutMotionFunc(motion);函式
  void motion(int x, int y)
{
    light_position[0]=(x-150*2)/150.0*2;  //變更光源座標為滑鼠座標
    light_position[1]=-(y-150)/150.0*2; 
    glLightfv(GL_LIGHT0,GL_POSITION,light_position); //重設光源
    glutPostRedisplay(); 
}
步驟六:編譯執行,完成!!!!

           

2017年11月1日 星期三

范姜紹瑋_Week7_筆記

打光
建立glut專案檔後,找到"const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };"後,將const刪除,並且在下面加入motion函式,以利使用滑鼠的移動來控制打光








另外,還要再main函式裡加入"glutMotionFunc(motion);"




接著執行後就可以用滑鼠來控制打光的方向了




2017年10月27日 星期五

Claire's Note #7

WEEK07

Topic:

  1. 作業二展示、互評
  2. 主題:Mouse、Model、打光
  3. 主題:Lighting打光、Shading光影

A. Mouse、Model、打光:用mouse調光源位置

STEP 1: 加入Motion函式,以滑鼠調整光源位置


STEP 2: Result




B. slice & stack (內建)

STEP 1: glutSolidSphere(1slicesstacks);

*圓形畫法:正n多邊形逼近

STEP 2: 調整經緯線數量

STEP 3: Result





Mengting計圖筆記Week07 - Mouse、Model、打光

主題: 用Mouse打光(lighting打光、shading光影)


1. 開啟GLUT專案
2. 增加一些函式,見程式碼。
3. 以下將針對部分程式碼補充介紹。



程式碼補充介紹

void key(unsigned char key, int x, int y)

透過鍵盤+和-改變圖形形狀及密度。
slice切幾刀、stack疊起來

static void resize(int width, int height)

使圖形大小不會受視窗縮放所影響。

static void display(void)

t隨時間改變角度。

void motion(int x, int y)

改變光線位置。

glutMotionFunc(motion)

偵測滑鼠移動時的座標。

Demo


1. slice/stack


2. 滑鼠調整光影




2017年10月26日 星期四

陳映羽的圖學WEEK07

1.slice, stack 圖形的形狀
2.利用鍵盤改變圖形的形狀與EXIT
3.更新圖形 
4. 設定打光
5.增加motion已利用滑鼠改變打光方向 
6.大功告成 


田蜜Week07

 Mouse-Lighting

1.打開glut專案
找到idle函式與main中的lighting相關程式碼



















2.light_position表示光的位址
   glutMotionFunc(motion); 表示滑鼠的改變

   將const  GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; 前面const 刪去
   即可改變light_position的變數



















3.加上函式

void motion(int x, int y)
{
    light_position[0]=(x-150*2)/150.0*2;  //更變光源座標為滑鼠座標
    light_position[1]=-(y-150)/150.0*2; 
    glLightfv(GL_LIGHT0,GL_POSITION,light_position); //重設光源
    glutPostRedisplay(); //重畫
}

  在main中加上glutMotionFunc(motion);  //mouse motion函式



















4.編譯執行




















完成!