Traducción entre coordenadas cartesianas y de pantalla.

Para mi juego necesito funciones para traducir entre dos sistemas de coordenadas. Bueno, es principalmente una pregunta de matemáticas, pero lo que necesito es el código C ++ para hacerlo y un poco de explicación sobre cómo resolver mi problema.

Coordenadas de la pantalla:

a) la esquina superior izquierda es 0,0

b) valores no negativos

c) derecha + = x (cuanto más valor es x, más a la derecha es el punto)

d) abajo + = y

Coordenadas cartesianas 2D:

a) el punto medio es (0, 0)

b) los valores negativos existen

c) derecho + = x

d) inferior - = y (cuanto menos es y, más abajo está el punto)

Necesito una forma fácil de traducir de un sistema a otro y viceversa. Para hacer eso, (creo) necesito algo de conocimiento como dónde está el (0, 0) [esquina superior izquierda en coordenadas de pantalla] colocado en las coordenadas cartesianas.

Sin embargo, existe el problema de que, en algún punto de las coordenadas cartesianas, después de traducirlas a las de pantalla, la posición en las coordenadas de la pantalla puede ser negativa, lo que no tiene sentido. No puedo poner la esquina superior izquierda de las coordenadas de la pantalla en (-inifidad, + infinito) coords cartesianos ...

¿Como puedo resolver esto? La única solución que se me ocurre es colocar la pantalla (0, 0) en cartesiano (0, 0) y solo usar el cuarto IV del sistema cartesiano, pero en ese caso, usar el sistema cartesiano no tiene sentido ...

Estoy seguro de que hay formas de traducir las coordenadas de la pantalla en coordenadas cartesianas y viceversa, pero estoy haciendo algo mal en mi pensamiento con los valores negativos.

Respuestas a la pregunta(5)

Su respuesta a la pregunta