close

開發平台:Visual Studio2015

 

Exercise1-1:

畫一個正三角形在圖片上。直接算出三條直線的方程式,然後將點帶入,判斷點在方程式左邊還是右邊。

for (i=0; i < biHeight; i++){
     k = i* biWidth4;
     for (j=0; j < biWidth; j++){
        if ((i-1.7*j)-215<=0 && (i+1.7*j)-1235<=0 && i>=385)
          data2[k] = 255;
        else         
          data2[k] = data1[k];

        k = k+1;
    }
}

 

Exercise1-2:

延續Exercise1-1,把正三角形旋轉90度。直接算出三條直線的方程式,然後將點帶入,判斷點在方程式左邊還是右邊。

for (i=0; i < biHeight; i++){
  k = i* biWidth4;
  for (j=0; j < biWidth; j++){           
    if (j>=185 && (-j*0.5-i+907)>=0 && (0.5*j - i + 234) <= 0)
      data2[k] = 255;
    else
      data2[k] = data1[k];

    k = k+1;
  }
}

 

Exercise1-3:

實作出不同灰階值的圖片。e.g. 2階圖:灰階分成0 255。4階圖:灰階0 64 128 255。 n灰階圖=256切成n等分。

int n = 2; //default
printf("Please enter gray level:");
scanf_s("%d",&n);
int temp2 = 256 / n;
  for (i=0; i < biHeight; i++){
    k = i* ((biWidth*1 +3)/4 *4);
    for (j=0; j < biWidth; j++){
      data2[k] = ((data1[k] / temp2) == 0)? (data1[k] / temp2) * temp2: (data1[k] / temp2 + 1) * temp2 - 1;

    k = k+1;
  }
}

 

程式碼:

Exercise1-1

Exercise1-2

Exercise1-3

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 a7069810 的頭像
    a7069810

    紀錄自己的程式人生

    a7069810 發表在 痞客邦 留言(0) 人氣()