2015-05-29 30 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

對不起,我以前沒有感謝你。這完美地爲我想要的,謝謝! –