如何逐步绘制圆形以创建动画填充效果(使用 Corona)

How to Draw Circle, incrementally, to create an animated fill effect (using Corona)

我什至不知道从哪里开始。任何帮助将不胜感激!

我想使用 Corona SDK 绘制一个圆圈,它会随着百分比的增加而慢慢填充。

填充效果将沿着圆圈的路径逆时针方向移动,直到整个 circle/area 完全填充不同的颜色。

谢谢!

This sample from caronalabs.com forums 显示了如何绘制弧线,它提供了执行您的要求所需的离散算法:

function display.newArc(group, x,y,w,h,s,e,rot) 
    local theArc = display.newGroup()

    local xc,yc,xt,yt,cos,sin = 0,0,0,0,math.cos,math.sin --w/2,h/2,0,0,math.cos,math.sin
    s,e = s or 0, e or 360
    s,e = math.rad(s),math.rad(e)
    w,h = w/2,h/2
    local l = display.newLine(0,0,0,0)
    l:setColor(54, 251, 9)
    l.width = 4

    theArc:insert( l )

    for t=s,e,0.02 do 
        local cx,cy = xc + w*cos(t), yc - h*sin(t)
        l:append(cx,cy) 
    end

    group:insert( theArc )

    -- Center, Rotate, then translate       
    theArc.x,theArc.y = 0,0
    theArc.rotation = rot
    theArc.x,theArc.y = x,y

    return theArc
end

function display.newEllipse(group, x, y, w, h, rot)
    return newArc(group, x, y, w, h, nil, nil, rot)
end

看来您需要做的就是随着时间的推移继续从圆心向圆周分配新的线。

免责声明:我没有测试过这段代码,您可能需要进一步修改它,但乍一看数学看起来是正确的。

HTH!