Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Puntos en el plano cartesiano Python: Abstracción con datos

La geometría es una de las herramientas más útiles cuando queremos modelar problemas del mundo real en código. Como es algo visual e intuitivo, resulta fácil imaginar los conceptos y trabajar con ellos de manera programática.

En esta lección, veremos cómo podemos representar puntos y segmentos en una coordenada cartesiana y cómo realizar algunas operaciones útiles con ellos.


Representación de un punto en el plano cartesiano

Antes de empezar a programar, recordemos cómo funciona un plano cartesiano. Es un sistema de referencia donde cada punto tiene dos valores llamados coordenadas:

  • Eje X: Horizontal
  • Eje Y: Vertical

Un punto en este sistema se representa como (x, y), donde x es su posición en el eje horizontal e y en el eje vertical. Por ejemplo, el punto (2, 3) se ubica desplazándose 2 a la derecha en el eje x y 3 hacia arriba en el eje y:

        y |
          |
        6 |
        5 |
        4 |
        3 |   . (2, 3)
        2 |
        1 |
----------+--------------------
          | 1 2 3 4 5 6       x
          |
          |

En código, podemos representar este punto con una tupla en Python:

# Representación del punto (2, 3)
point = (2, 3)
# Otra forma equivalente
point = 2, 3

Simetría respecto al Eje X

🔄 Podemos realizar operaciones sobre los puntos, como hallar su simétrico respecto al eje X. La propiedad fundamental aquí es que el punto reflejado tendrá la misma coordenada x, pero la y invertida (cambiando su signo):

         y |
           |
         6 |
         5 |
         4 |
         3 |     . (2, 3)
         2 |
         1 |
-----------------------------------
        -1 |  1  2  3  4  5  6    x
        -2 |
        -3 |     . (2, -3)
        -4 |
        -5 |
        -6 |

En código, esto se implementa fácilmente:

# Punto original
point = (2, 3)

# Descomponemos la tupla en coordenadas individuales
x, y = point

# Creamos el nuevo punto reflejado en el eje X
symmetrical_point = (x, -y)

print(symmetrical_point)  # Salida: (2, -3)

Encontrar el punto medio entre dos puntos

En muchos casos, necesitamos encontrar el punto medio de un segmento, es decir, la posición que está exactamente en la mitad de dos puntos dados. Matemáticamente, se calcula tomando el promedio de las coordenadas x e y por separado:

  • \( x_{medio} = \frac{x_1 + x_2}{2} \)
  • \( y_{medio} = \frac{y_1 + y_2}{2} \)

Ejemplo en código:

def get_middle_point(p1, p2):
    """Recibe dos puntos y devuelve el punto medio."""
    x1, y1 = p1
    x2, y2 = p2
    x = (x1 + x2) / 2
    y = (y1 + y2) / 2
    return (x, y)

# Definimos dos puntos
point1 = (2, 3)
point2 = (-4, 1)

# Calculamos el punto medio
middle = get_middle_point(point1, point2)

print(middle)  # Salida: (-1.0, 2.0)

Representación de un Segmento

En geometría, un segmento es simplemente la unión de dos puntos. Lo podemos representar en código con una tupla que contiene estos dos puntos:

point1 = (3, 4)
point2 = (-8, 10)

# Un segmento es una tupla con dos puntos
segment = (point1, point2)

print(segment)  # Salida: ((3, 4), (-8, 10))

Resumen

  • Un punto en un plano cartesiano se representa con una tupla (x, y).
  • Para reflejar un punto respecto al eje X, simplemente invertimos el signo de la coordenada y.
  • El punto medio entre dos puntos se calcula promediando sus coordenadas x e y.
  • Un segmento puede representarse con una tupla formada por dos puntos.

Con estos conceptos básicos, estamos listos para realizar modelado geométrico más complejo en nuestros programas.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY