如何在Corona中逐步绘制圆形,以创建动画填充效果

我甚至不知道从哪里开始解决这个问题。非常感谢您提供任何帮助!

使用 Corona SDK,我想绘制一个圆形,当百分比增加时,圆形将慢慢填充。

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

谢谢!

点赞
用户131420
用户131420

这里展示了一个从caronalabs.com论坛上的样例,显示了如何绘制一个弧,提供了离散算法,可以做到您所要求的:

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:插入(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)

     -- 居中,旋转,然后平移
     theArc.x,theArc.y = 0,0
     theArc.rotation = rot
     theArc.x,theArc.y = x,y

     返回theArc
end

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

似乎您所需要做的只是在一段时间内,继续从圆心分配新行,直到达到圆周为止。

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

希望对你有所帮助!

2015-05-30 05:47:35