我甚至无法弄清楚从哪里开始。任何帮助都将受到高度赞赏!
使用Corona SDK我想画一个圆圈,随着百分比的增加会慢慢填充。
填充效果将遵循圆的路径,逆时针旋转,直到整个圆/区域完全填充不同的颜色。
谢谢!
答案 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!