I inspired from http://spiralcodestudio.com/corona-sdk-pro-tip-of-the-day-34/ to modify transition and allow to change radius without xScale or yScale.
local function transition\_PATH\_RADIUS\_SUPPORT(o,params) if not params.radius then return transition.to(o,params) end // traditional transition local r,rObject=params.radius,o.path.radius // the radius to aim and the original radius params.radius=nil local tab={object=o,r0=0} // I will make transition on that table local mt={} setmetatable(tab,mt) // I put metatable on tab to allow to change radius of circle function mt.\_\_index(tbl,key) if key=="radius" then return tab.r0 end // use only once, to init the process because "radius is not present on key-value of params. I return 0 end function mt.\_\_newindex(tbl,key,value) if key=="radius" then // the key "radius" is changing with the transition made on table "tab" tab.r0=value // r0 is updated here tbl["object"].path.radius=rObject+(r-rObject)\*value/r // I change the radius here end end local function start() transition.to(tab,{time=params.time,radius=r}) end params.onStart=start return transition.to(o,params) // caution : transition.cancel(o) don't stop the radius process. Use in transition.cancel(tab) in addition to transition.cancel(o) end local cc=display.newCircle(30,100,30) local tt=transition\_PATH\_RADIUS\_SUPPORT(cc,{time=5000,x=w-30,radius=80,transition=easing.inOutBack,}) //allow transition effect