0
我甚至不知道从哪里开始。任何帮助将不胜感激!如何逐渐绘制圆以创建动画填充效果(使用Corona)
使用Corona SDK我想绘制一个将以百分比增加的方式缓慢填充的圆。
填充效果将沿着圆的路径逆时针旋转,直到整个圆/区域完全填充不同的颜色。
谢谢!
我甚至不知道从哪里开始。任何帮助将不胜感激!如何逐渐绘制圆以创建动画填充效果(使用Corona)
使用Corona SDK我想绘制一个将以百分比增加的方式缓慢填充的圆。
填充效果将沿着圆的路径逆时针旋转,直到整个圆/区域完全填充不同的颜色。
谢谢!
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!
对不起,我以前没有感谢你。这完美地为我想要的,谢谢! –
你甚至有什么尝试过吗?你是否真的已经获得了圈子本身的绘画/工作?我们需要知道你所做的一切,以及哪些不起作用。像这样的例子往往看起来不合时宜,因为没有人愿意为你做所有的工作。 – Josh
“我无法弄清楚从哪里开始。”看起来像是一个非常合理的先驱,没有原型可以用来解决他的问题。在这种情况下,最好让问题持续下去,直到真正了解Corona SDK的人可以参与进来并提供一些帮助,并且可能编辑此问题,直到它成为有价值的Lua + Corona社区资产做同样的事情。 (奇怪的是,当我在这里降落时!) –