very smooth pan+zoom logic in react+canvas
- worldToScreen()
- screenToWorld()
v1|3FR9cY8ySCgSlDTx7wyJBSYvko/Z8CKId41+xttZdQmfwSj/1XGUYnEuNhlKvC5P3wXLhes8IVa0SHm5TF8E4mKbasHnA1ipVmtQukZyVjF9Wlvx4wUhLPEke4PP2tzGyHCq4cSaVDiJqI3In0fGEyyRoKnHmek6fxZzaRdOYgD0nKOHgy5BvG5VeYcspnhAJlDCj+W6Gp2RphKpQPMeKHH4/9dI0JvZnC2SbCFQDJzOfNtPSbZKK11tJvk1AQEQFJ+QFGIU/H9/gASg/BDKNdzuc0hFzq2msQtDME63rFdmBfUh0vd9ZrM62/wDVmfNmP+VYuAIdqbzK+bXnv8LBKBLqWrvOSAE9ulYfG+5+YflxrnezBuFIiWbPOntxd7WOoaGvHMsmgT5sO4gKbJMlNfwsNyeW66rk9vOpefAPx8Kyfz8D1EOuNfZAL13qwYd+k95L/SwhyZWA69q4oyepT0ubROrYpazPpH+3jEjZsXepkBoAjiHAy/3jub5APfStHkoPf+fi2cH/etIQoNISIjGeYDYu16jj8+pz8G4cj0HBzJHsMV71zUulqgnX/h1AnKgaT3slB0p8QF2eEbCDjmTRB+uKZulZsYCDvRYdOQIkAIBOTAR2dEjc7z8VMmMLcf8IdIFlZe3huN/zBvQt+553nR/aGEAmdzhgzUJbe1oczAIXEyKxbnUK/26lrXaJDzTpjT4IbkEIRWU+l89K0qvUDs5MtgsDr6dSP00WnHDqfDjjiOLwhnO1jm/N+X23021bMC9Y30I53t261wwYcJfFdDGWloVrF1L2C8BNo9Ka5IwjxlaSpAaXjFnTGobhWYpS8ZP0qqQGcr12AkzdzIn5h/+GsHZ2TiSVKT7sGHr55c3Xa6758tYIIgphoZlmQ/l3gHDALuGdRHQ+SibzJumBMf7fcqHCiGYP7bAS0lNVL1spb8IdmQWWJtw1hAKgWvZvxFS0EeJkAkPSn5TGoMK65vw7BwlW8uKIQST4njT8pnmJ0+OFJRUiHLhR |
some data 0 |
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 |