HBXK2CLZD6BIBAQB2MXDY2U2O7TAZLEZXIJUWIVNVT4F5LKWLEIQC XGJ5JRNW5W4PZASKSOSZFMNKCIZVZRUNTJOU7J2GTFEZ76WWSZHQC 6CVVB4NZKL3YCHB4YYKTHPZY4J7CWPJVJ7VYSI7GNV4ZHBV4CMJQC NGWIIZ5XGKXY2F7VLUYKKR26HO3AVDGXSKC5MMBSSOM4E7NX3XNAC R5QXEHUIZLELJGGCZAE7ATNS3CLRJ7JFRENMGH4XXH24C5WABZDQC QO2BU5MSY6N7D57BSQGE64Y5PFJF3MJ3NVLWY6VZSV5PN7IX6O5QC 72K7733VL7KMJYMTJNBDGNO3KK6LRJRSL53OGWGIS7LTUCEMJCFQC 4NFPDQ4SITGAS22RQWLPE4OEAWNRMIMIZURGSD4EQLE64RMNU6GAC A6HLSJEOJJGNTITANAOHC7PW7IKJHUNHWRYL7LJKRFUZRLVTHGLAC 46X35644JYDQLMYGUWHSSVA5AR3CHRXWEYGEIMZRZOG3IIPLADSQC YFQRJ4EYPIIUN26G4XKLAXK4YHJ54IKUDI272U4UT6BP2JEXWK6QC 7TQAF4BYIK75EEYCCK7VEUSZHNCWMWIA3HZGQKIILYESUZ5ZZRVQC O5GJ6PNNBYHH4X3DU4XOB7IDJ4QEW5KXFETIDUJESBUKJYXBSYYAC D53MJPOEMKPITCY34SKTLVWPHAKY5A6YXBA4OVSWGOEB4YQNHQRAC PFPA3MDGTKKFDUIV2RW3BIOU2UVGY4LO5BPKOXCJ6LELIILXJ73AC VUJJNWJDHQFAQO4QGV7YOXG3K7M66P7SIYNA22R36LIBDKFMKPIQC L2TYWUSDK63PUPQK7WNTLC4VTLIXC2DGVCTJG7RKVG2ZUHX7QC4QC KOYVQMLMWR4VVZW43BKS53D6OSDPBIWZG6MWNGA4MZTSWWFYKDCQC RBMZ3SYOLDBQNQUZRBKMSUZXCOJXHQX57HQMZKAS7ZASRPTQA6NAC 6C3UZDESM2HPFIHAW5YIPUV6VXO4YV5DIEY574HUGP2DGOQNUVOAC animate_to = function(v)local global_viewport, globalw, globalh = initialize_global_viewport()local canvas = snapshot_canvas(global_viewport, globalw, globalh)v = v or global_viewportlocal initial = copy_viewport(Viewport)local final = vlocal step, frame_time = 0, 0while true dolove.event.pump()for name, a,b,c,d,e,f in love.event.poll() doif name == "quit" thenos.exit(0)end-- ignore other eventsend-- updatedt = love.timer.step()frame_time = frame_time + dtif frame_time > 0.01 thenframe_time = frame_time - 0.01step = step + 1if step > Num_animation_frames thenbreakendinterpolate_viewport(initial, final, step)--? print('animation frame: Viewport is now', Viewport.x, Viewport.y, Viewport.zoom)B()end-- drawlove.graphics.origin()love.graphics.clear(love.graphics.getBackgroundColor())local q = love.graphics.newQuad((Viewport.x-global_viewport.x)*Viewport.zoom,(Viewport.y-global_viewport.y)*Viewport.zoom,App.screen.width,App.screen.height,globalw*Viewport.zoom,globalh*Viewport.zoom)App.color{r=1,g=1,b=1}love.graphics.draw(canvas, q, 0,0)love.graphics.present()love.timer.sleep(0.001)endendA()
local zoom, globalw, globalhglobalw = maxx-minxglobalh = globalw*App.screen.height/App.screen.widthglobalh = maxy-minyglobalw = globalh*App.screen.width/App.screen.heightlocal global_viewport = {x=minx, y=miny, zoom=zoom}return global_viewport, globalw, globalhendendelsezoom = zoomyif zoomx < zoomy thenzoom = zoomx
local initial_viewport = copy_viewport(Viewport)animate_to(--[[global viewport]] nil)animate_to(initial_viewport)print('Viewport at end of survey animation', Viewport.x, Viewport.y, Viewport.zoom)
animate_to(Save_viewport)print('Viewport at end of undo zoom out animation', Viewport.x, Viewport.y, Viewport.zoom)Save_viewport = nilend
-- precondition: Viewport == global_viewportanimate_to{x=sx(x)-App.screen.width/Save_viewport.zoom/2,y=sy(y)-App.screen.height/Save_viewport.zoom/2,zoom=Save_viewport.zoom,}print('Viewport at end of zoom in animation', Viewport.x, Viewport.y, Viewport.zoom)-- precondition: Save_viewport exists-- center Viewport on x,y at zoom level Saved_viewport.zoom
snapshot_canvas = function(global_viewport, globalw, globalh)App.screen.width, App.screen.height = globalw, globalhViewport = copy_viewport(global_viewport)local canvas = love.graphics.newCanvas(w, h)love.graphics.setCanvas(canvas)return canvasendon.draw()Viewport.zoom = 1.0A()local saved_viewport = Viewport-- Render the canvas at pixel perfect resolution.
animate_to(--[[global viewport]] nil)print('Viewport at end of zoom out animation', Viewport.x, Viewport.y, Viewport.zoom)
for _, k in ipairs{'x', 'y', 'zoom'} doViewport[k] = (initial[k]*(Num_animation_frames - step) + final[k]*step) / Num_animation_framesendend