320x240 彩色LCD營幕的六角形之幾何圖形範例#5A
本次撰寫幾何圖形屬六角形,原先第一次的程式是如#5A下方的方式撰寫,但是所產生的六角形,卻於右上方的座標出現與其他位置不對齊,經判斷是在計算SIN & COS函數時,會產生累積誤差所致,才出現所畫出來圖形是非正六角形。
Show_RGB(0,240,20,320,0x0000);
z1++;if(z1>8) z1=1; // 圓形圈的顏色
for(i=0;i<6;i++)
{ x0 =120+(cos(i)*120);
y0 =200+(sin(i)*120);
GS[i][0]=x0;
GS[i][1]=y0;
}
for(i=0;i<5;i++)
{ Line(GS[i][0],GS[i][1],GS[i+1][0],GS[i+1][1],YCOLOR[z1]); }
Line(GS[0][0],GS[0][1],GS[5][0],GS[5][1],YCOLOR[z1]);
for(j=0;j<6;j++)
{
for(i=1;i<4;i++)
{ Line(GS[j][0],GS[j][1],GS[i+1][0],GS[i+1][1],YCOLOR[z1]); }
}
Line(GS[1][0],GS[1][1],GS[5][0],GS[5][1],YCOLOR[z1]);
320x240 彩色LCD營幕的圓形之幾何圖形範例#5B
因此重新構思如何畫出正六角形的圖案,程式如下所示,此次撰寫過程未加以精簡,各位如需採用,也許可以也挑戰自已一下,將其精簡之。
Show_RGB(0,240,20,320,0x0000);
z1++;if(z1>8) z1=1; // 圓形圈的顏色
GS[0][0]=120; GS[0][1]=200;
GS[1][0]=240; GS[1][1]=200;
GS[4][0]= 0; GS[4][1]=200;
GS[2][0]=120+(cos(1)*120);
GS[2][1]=200+(sin(1)*120);
GS[3][0]=240-GS[2][0];
GS[3][1]=GS[2][1];
GS[5][0]=GS[3][0];
GS[5][1]=200-(GS[3][1]-200);
GS[6][0]=GS[2][0];
GS[6][1]=GS[5][1];
for(i=1;i<6;i++)
{ Line(GS[0][0],GS[0][1],GS[i][0],GS[i][1],YCOLOR[z1]);
Line(GS[i][0],GS[i][1],GS[i+1][0],GS[i+1][1],YCOLOR[z1]);
}
Line(GS[6][0],GS[6][1],GS[1][0],GS[1][1],YCOLOR[z1]);
Line(GS[6][0],GS[6][1],GS[0][0],GS[0][1],YCOLOR[z1]);
Line(GS[1][0],GS[1][1],GS[3][0],GS[3][1],YCOLOR[z1]);
Line(GS[2][0],GS[2][1],GS[4][0],GS[4][1],YCOLOR[z1]);
Line(GS[3][0],GS[3][1],GS[5][0],GS[5][1],YCOLOR[z1]);
Line(GS[4][0],GS[4][1],GS[6][0],GS[6][1],YCOLOR[z1]);
Line(GS[5][0],GS[5][1],GS[1][0],GS[1][1],YCOLOR[z1]);
Line(GS[6][0],GS[6][1],GS[2][0],GS[2][1],YCOLOR[z1]);