Hola, estoy intentando calcular la posicion de un objeto sobre una superficie pero me está costando un poco.
Tengo el lienzo que tiene un tamaño de 100x200 pixeles, este lienzo se encuentra posicionado al centro de la pantalla el cual tiene un tamaño dinámico, sobre el lienzo central se posiciona el objeto que puede tener una posición, por ejemplo de 10px de izquierda a derecha mas el pixel de inicio del lienzo.
Por ejemplo, digamos que la pantalla es de 1024x768 y el lienzo es de 100x200, entonces si el objeto está 10 pixeles dentro del lienzo hacia la derecha, quiere decir que la cantidad de pixeles hacia la derecha son ((1024/2)-(100/2))+10
El problema que tengo es que de manera dinámica le hago zoom al lienzo para ajustarlo a la pantalla, digamos que este facto de zoom es de 2.5, eso quiere decir que el lienzo es un 250% mas grande desde el centro hacia afuera para ser ajustado al tamaño completo de la pantalla.
Mi problema ahora se encuentra cuando necesito saber la exactitud de la posición del objeto que tambien fue redimensionado sobre el mismo lienzo.
No tengo acceso a los valores nuevos de cada objeto dibujado sobre el lienzo porque el sistema sobre el cual estoy trabajando no deja un historial de objetos, cuando se dibujan pasa a ser un lienzo único y no separado por capas (estoy usando canvas) asi que cuando hago la redimensión del lienzo el area de acción del objeto no se redimensiona (porque no es un objeto dibujable, es el area de un botón).
Lo que necesito es calcular la posicion exacta del boton ya redimensionado para poder realizar las acciones al momento de hacer click sobre el botón.
Lo azul es la pantalla, el rojo es el lienzo y el verde es el botón.
Tengo posiciones top, bottom, left y right, es un area cuadrada, lo que traté de hacer es aumentar cada valor multiplicado por la mitad del factor de zoom pero no me resultó, también intenté aumentar proporcionalmente el tamaño del area del boton pero me es dificil poder posicionarlo ya que por ejemplo si el boton esta en la ezquina superior derecha la posicion top y left no debiera cambiar como si estubiera en la posicion right bottom porque el superior se corre hacia arriba y la izquierda y el de abajo hacia abajo y la izquierda y si estubiera al centro es proporcional.
¿A alguien se le ocurre como hacer esto?