🧮 Computational Mathematics

Inicio · Parte 03 — Geometría, trigonometría y geometría analítica

078 — Proyecciones y perspectiva

basico-intermedio clase 18 de 20 4 horas demostración projection

La perspectiva divide por la profundidad, y esa división es lo que hace que los objetos lejanos se vean pequeños.

Fórmulas

proyección ortogonal sobre u: proj_u(x) = (x·u/u·u)·u
perspectiva: x' = f·x/z,  y' = f·y/z

Desarrollo

Hay dos proyecciones distintas y conviene no mezclarlas. La proyección ortogonal sobre una dirección es una operación lineal que descompone un vector en una componente paralela y otra perpendicular. Es la base de PCA (clase 135), de mínimos cuadrados (clase 119) y de cualquier «cuánto de esta dirección hay en este vector».

La proyección en perspectiva es otra cosa: divide las coordenadas por la profundidad, y por eso no es lineal. Es la que reproduce cómo vemos: dos objetos del mismo tamaño a distancias distintas ocupan ángulos distintos en la retina. La división por z es exactamente lo que hace que las vías del tren converjan en el horizonte.

La proyección ortogonal viene acompañada de un teorema de Pitágoras: si x = p + r con p la proyección y r el residuo ortogonal, entonces ‖x‖² = ‖p‖² + ‖r‖². Comprobar esa identidad es la verificación estándar de que una proyección se calculó bien, y el laboratorio la incluye.

Que la perspectiva no sea lineal explica por qué las coordenadas homogéneas de la clase 073 son imprescindibles en gráficos: la división por z se difiere hasta el final (la «división de perspectiva») y todo lo anterior se mantiene como productos de matrices.

Ejemplo trabajado

Proyección ortogonal y perspectiva.

Ortogonal de v = (4,3) sobre u = (1,0):
  coef = (v·u)/(u·u) = 4/1 = 4
  proyección = (4, 0)
  residuo    = (0, 3)
  residuo·u  = 0                    ✓ ortogonal
  Pitágoras: 25 = 16 + 9            ✓

Perspectiva con f = 2, z = 5:
  x' = 2·4/5 = 1.6
  el mismo punto a z = 10 daría 0.8
  → al doblar la distancia, el tamaño se reduce a la mitad

Qué calcula el laboratorio

Proyección ortogonal de un vector y proyección en perspectiva.

python classes/part-03-geometria-trigonometria-y-geometria-analitica/078-proyecciones-y-perspectiva/lab.py
compmath run 078

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "v": [
    4.0,
    3.0
  ],
  "direccion_u": [
    1.0,
    0.0
  ],
  "proyeccion": [
    4.0,
    0.0
  ],
  "residuo": [
    0.0,
    3.0
  ],
  "residuo_ortogonal_a_u": true,
  "pitagoras": true
}

Errores comunes

Dónde se usa

Pipeline gráfico, calibración de cámaras, PCA, mínimos cuadrados y descomposición ortogonal en general.

Idea rectora de la parte

El producto punto mide alineación; la norma mide magnitud.

Error a evitar

Olvidar normalizar antes de comparar direcciones.

Conexión con IA

Las transformaciones geométricas son el caso visual de las transformaciones lineales que una red aplica a sus activaciones; la similitud coseno es trigonometría en alta dimensión.

Bibliografía de la clase

Archivos de la clase