2016年5月27日 星期五

Processing 基礎 一 畫幾何圖形

Processing 基礎 一 畫幾何圖形

      Processing 重點在於用程式畫圖,再用一連串的圖做成動畫,在畫圖前有幾個觀念要先了解。


坐標系統

         Processing 的坐標左上角是x0,y0 ,往右邊x會增加往下y增加,Processing 的平面座標負數物體會超出畫面, 3D 坐標 z 需是負數。


色彩空間


    Processing 預設採用 RGB 色彩空間 ,RGB採用加法混色法,因為它是描述各種「光」通過何種比例來產生顏色。光線從暗黑開始不斷疊加 產生顏色。RGB描述的是紅綠藍三色光的數值。Processing 灰階 一樣是用加法 0為黑色255 為白色。


圖片來源 : 維基百科

 實際操作

   開啟Processing 輸入以下程式碼


size(640, 480);          //視窗大小
background(180,0,168);   //背景顏色 紅 180 綠 0 藍 168
stroke(0);              // 物體框 灰階 0

fill(125,128);          // 填滿顏色 灰階 125 透明度 128
triangle(18,18, 18, 360, 81, 360); //畫三角形

fill(102,128,0,128);    // 填滿顏色 紅 102 綠 128 藍 0 透明度 128
rect(81, 81, 63, 63);   //畫方形

fill(204);    //填滿顏色 灰階 204
quad(189, 18, 216, 18, 216, 360, 144, 360); //畫四角形

fill(255);   // 填滿顏色 灰階 255
ellipse(300, 200, 72, 72);  // 畫圓形

fill(255);  // 填滿顏色 灰階 255
arc(480, 280, 280, 280, PI, TWO_PI); // 畫弧形



按  "撥放 " Processing IDE 會依照輸入的程式畫出圖形




 可以改變程式內的數字試看看有甚麼不同的結果

Processing 函數

size()

    size()定義畫面尺寸必須在程式第一行或是setup()後的第一行例如size(640,480)是定義畫面的寬度是640點高度是480點size()只能定義一次程式運作中無法改變,未定義size()預設為100x100size()也可指定渲染器種類

語法 :
size(寬度,高度)
size(寬度,高度,渲染器)

background()

       background() 是設定背景顏色Processing預設背景為淺灰色如填入一個值(0~255中間)會是灰階填入兩個數值(128,20)第二個數字是代表不透明度Processing預設顏色是RGB模式可以填入16進制的顏色表示法如(#FF00FF)也可以填入三個數字(255,0,255)會是紫色第4個數字是代表不透明度(255,0,0,128)紅色不透明度彩色模式如果改為HSB模式這三個值代表(色相,亮度,飽和)背景也可使用圖片,圖片大小要與畫面大小一致


語法 :

background( 紅綠藍 ) 
background( 紅綠藍, 不透明度 ) 
background( 灰階 ) 
background( 灰階,不透明度 )        
background( 色相 , 亮度 , 飽和度 )  //HSB模式
background( 色相, 亮度,飽和度, 不透明度 )    //HSB模式
background( 圖片 )

stroke()

         stroke() 是設定邊框顏色如填入一個值(0~255中間)會是灰階填入兩個數值(128,20)第二個數字是代表不透明度Processing預設顏色是RGB模式可以填入16進制的顏色表示法如(#FF00FF)也可以填入三個數字(255,0,255)會是紫色第4個數字是代表不透明度(255,0,0,128)紅色不透明度彩色模式如果改為HSB模式這三個值代表(色相,亮度,飽和)
也可直接使用無邊框模式 noStroke()

語法:

stroke( 紅綠藍 ) 
stroke( 紅綠藍, 不透明度 ) 
stroke( 灰階 ) 
stroke( 灰階,不透明度 )        
stroke( 色相 , 亮度 , 飽和度 )  //HSB模式
stroke( 色相, 亮度,飽和度, 不透明度 )    //HSB模式

fill()

      fill() 是設定填滿顏色如填入一個值(0~255中間)會是灰階填入兩個數值(128,20)第二個數字是代表不透明度Processing預設顏色是RGB模式可以填入16進制的顏色表示法如(#FF00FF)也可以填入三個數字(255,0,255)會是紫色第4個數字是代表不透明度(255,0,0,128)紅色不透明度彩色模式如果改為HSB模式這三個值代表(色相,亮度,飽和)
也可直接使用無邊框模式 noFill()

語法 :

fill( 紅綠藍 ) 
fill( 紅綠藍, 不透明度 ) 
fill( 灰階 ) 
fill( 灰階,不透明度 )        
fill( 色相 , 亮度 , 飽和度 )  //HSB模式
fill( 色相, 亮度,飽和度, 不透明度 )    //HSB模式

triangle()

     triangle() 是畫一個三角形指定三點就會畫出一個封閉型的三角形須指定每一點的x,y坐標

語法 : 

triangle(X1,Y1,X2,Y2,X3,Y3)


rect()

     rect() 是畫一個4方型有八的參數可下rect(250,250,50,40)在坐標x250,y250地方畫一個寬度50高度40的方形rect(250,250,50,40,10)在坐標x250,y250地方畫一個寬度50高度40圓角半徑10的方形rect(250,250,50,40,10,5,7,4)在坐標x250,y250地方畫一個寬度50高度40左上圓角半徑10右上圓角半徑5右下圓角半徑7左下圓角半徑4的方形

語法 :

rect(x, y, 寬度 , 高度)
rect(x, y, 寬度 , 高度 , R角)
rect(x, y, 寬度 , 高度 , 左上R角,右上R角,右下R角,左下R角)

ellipse()

       ellipse() 畫一個橢圓ellipse(100,100,30,30) 在 x100,y100的地方畫一個高度30寬度30的圓寬度跟高度一樣就是圓寬度跟高度不一樣就叫橢圓

語法 :

 ellipse(x, y, 寬度 , 高度)

arc()

    arc()是畫一個弧形arc(480, 280, 280, 280, PI, TWO_PI)在x480,y280畫一個高度280寬度280起始點為PI終止點為TWO_PI的弧形。模式可決定弧形是否封閉預設為開放

語法 : 

arc(x, y, 寬度,高度,起始點,終止點)
arc(x, y, 寬度,高度,起始點,終止點,模式)


參考資料 :

https://processing.org/

https://zh.wikipedia.org/

沒有留言:

張貼留言