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

时间:2015-05-29 03:51:20

标签: lua geometry corona geometry-surface

我甚至无法弄清楚从哪里开始。任何帮助都将受到高度赞赏!

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

填充效果将遵循圆的路径,逆时针旋转,直到整个圆/区域完全填充不同的颜色。

谢谢!

1 个答案:

答案 0 :(得分:1)

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!