|
本帖最后由 gbttw 于 2021-1-28 14:07 编辑
在“实验31:TFTLCD液晶实验”停留也不算太久。画线比较好理解;器件驱动也不要过多纠结;时间主要用在练习,特别是画圆上面。画圆问题清楚了,也就第一阶段c51学习完成,准备下一阶段stm8学习。
“画圆”实验代码不知是有意还是无意写成那样,就像之前的其它实验,反正也需要练习,有几个实验把插针顺序调整,或者把插针归集到一起,除非想在这里练习接线。
下面是修改后的一段代码:
int a,b;
int di;
a=0;b=r;
di=1-r; //设置初始误差量。(0.5*(2a-2b+2))
while(a<=b)
{
LCD_DrawPoint(x0+b,y0-a); //3点钟位置向前(+)
LCD_DrawPoint(x0+a,y0-b); //6点钟-
LCD_DrawPoint(x0-a,y0-b); //6点钟+
LCD_DrawPoint(x0-b,y0-a); //9点钟-
LCD_DrawPoint(x0-b,y0+a); //9点钟+
LCD_DrawPoint(x0-a,y0+b); //12点钟-
LCD_DrawPoint(x0+a,y0+b); //12点钟+
LCD_DrawPoint(x0+b,y0+a); //3点钟-
a++; //使用Bresenham算法画圆
if(di<0)di +=2*a+1; //di +=2*a-1(循环内,从if开始a++递增在前);di +=2*a+1(a++递增在后)
else
{
di+=2*(a-b)+2; //其中Δb=-2*b-1(b--递减在前);Δb=-2*b+1(b--递减在后)
b--;
}
}
各人情况不一样,反正我是在动手实验前就看完了“[我的第①本c语言编程书:C语言从入门到精通]国家863中部软件孵化器”这本扫描件。
|
|