STM32F429+ILI9341圆弧画法

2019-07-20 03:35发布

file:///C:/Users/zhanghuanhuan/Documents/WXWork/1688850501363303/Cache/Image/2019-02/%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_15513311172124.png各位大神好,利用STM32F429+ILI9341如何画出附件图中的圆弧和圆?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
nashui_sx
2019-07-20 08:45
[mw_shl_code=applescript,true]void TFT_Circle(u16 X,u16 Y,u16 R)
{//Bresenham算法
    unsigned short  a,b;
    int c;a=0;b=R;c=3-2*R;
    while (a<b)
    {
        TFT_DrawPoint(X+a,Y+b);     //        7
        TFT_DrawPoint(X-a,Y+b);     //        6
        TFT_DrawPoint(X+a,Y-b);     //        2
        TFT_DrawPoint(X-a,Y-b);     //        3
        TFT_DrawPoint(X+b,Y+a);     //        8
        TFT_DrawPoint(X-b,Y+a);     //        5
        TFT_DrawPoint(X+b,Y-a);     //        1
        TFT_DrawPoint(X-b,Y-a);     //        4
        if(c<0) c=c+4*a+6;
        else {c=c+4*(a-b)+10;b-=1;}
        a+=1;
    }
    if (a==b)
    {
        TFT_DrawPoint(X+a,Y+b);
        TFT_DrawPoint(X+a,Y+b);
        TFT_DrawPoint(X+a,Y-b);
        TFT_DrawPoint(X-a,Y-b);
        TFT_DrawPoint(X+b,Y+a);
        TFT_DrawPoint(X-b,Y+a);
        TFT_DrawPoint(X+b,Y-a);
        TFT_DrawPoint(X-b,Y-a);
    }
       
} [/mw_shl_code]

判断TFT_DrawPoint 参数与X Y的大小实现画半圆  圆弧类似

一周热门 更多>