mpy lcd 绘制圆

本文介绍如何使用Python分别实现圆形填充和非填充的图形绘制,通过两个函数`drawCirc_fill`和`drawCirc`,详细展示了实心圆和不同形状的非实心圆的绘制过程,适合初学者理解基本图形绘制技术。
摘要由CSDN通过智能技术生成

1.实心

def drawCirc_fill(tft,x,y,r,pen):
    ox =r
    oy =0
    err = -r
    while ox>=oy:
        last_oy = oy
        err +=oy
        oy+=1
        err+=oy
        tft.hline(x-ox,y+last_oy,ox*2+1,pen) ##3
        if last_oy != 0:
            tft.hline(x-ox,y-last_oy,ox*2+1,pen)##2
        if err>=0 and ox!=last_oy:
            tft.hline(x-last_oy,y+ox,last_oy*2+1,pen)##4
            if ox!=0:
                tft.hline(x-last_oy,y-ox,last_oy*2+1,pen)##1
            err -=ox
            ox -=1
            err -=ox

2.非实心

#draw1_8 = 1
#draw2_8 = 2
#draw3_8 = 4
#draw4_8 = 8
#draw5_8 = 16
#draw6_8 = 32
#draw7_8 = 64
#draw8_8 = 128
def drawCirc(tft,x,y,r,color,shape_type=0):
    x_i =0
    y_i = r
    p = 1-r
    shape_bin = bin(shape_type)
    while x_i<y_i:
        x_i +=1
        if p<0:
            p += 2*x_i+1
        else:
            y_i -=1
            p +=2*(x_i-y_i)+1
            
        if shape_type&0x1:
            tft.pixel(x+y_i,y-x_i,color)
        if (shape_type>>1)&0x1:
            tft.pixel(x+x_i,y-y_i,color)
            
        if (shape_type>>2)&0x1:       
            tft.pixel(x-x_i,y-y_i,color)
        if (shape_type>>3)&0x1:
            tft.pixel(x-y_i,y-x_i,color)

        if (shape_type>>4)&0x1:       
            tft.pixel(x-y_i,y+x_i,color)       
        if (shape_type>>5)&0x1:   
            tft.pixel(x-x_i,y+y_i,color)
            
        if (shape_type>>6)&0x1:       
            tft.pixel(x+x_i,y+y_i,color)     
        if (shape_type>>7)&0x1:   
            tft.pixel(x+y_i,y+x_i,color) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谢娘蓝桥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值