如何逐步绘制圆形以创建动画填充效果(使用 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!
我什至不知道从哪里开始。任何帮助将不胜感激!
我想使用 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!