2015-05-29 26 views
0

我甚至不知道从哪里开始。任何帮助将不胜感激!如何逐渐绘制圆以创建动画填充效果(使用Corona)

使用Corona SDK我想绘制一个将以百分比增加的方式缓慢填充的圆。

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

谢谢!

+1

你甚至有什么尝试过吗?你是否真的已经获得了圈子本身的绘画/工作?我们需要知道你所做的一切,以及哪些不起作用。像这样的例子往往看起来不合时宜,因为没有人愿意为你做所有的工作。 – Josh

+0

“我无法弄清楚从哪里开始。”看起来像是一个非常合理的先驱,没有原型可以用来解决他的问题。在这种情况下,最好让问题持续下去,直到真正了解Corona SDK的人可以参与进来并提供一些帮助,并且可能编辑此问题,直到它成为有价值的Lua + Corona社区资产做同样的事情。 (奇怪的是,当我在这里降落时!) –

回答

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!

+0

对不起,我以前没有感谢你。这完美地为我想要的,谢谢! –