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;
}
}
程式碼:
全站熱搜
留言列表