Puntos y vectores 2D
Vector 2D
Vector entre dos puntos 2D
Norma de un vector 2D
Distancia Euclídea entre dos puntos 2D
Para dos puntos
Distancia Manhattan 2D
Producto escalar 2D
Para dos vectores
Distancia de un punto a una línea
Para un punto
Puntos y vectores 3D
Vector 3D
Vector entre dos puntos 3D
Norma 3D
Distancia entre dos puntos 3D
En dos puntos
Producto escalar 3D
Para dos vectores
Producto vectorial 3D
Para dos vectores
El producto cruzado genera un vector perpendicular a los dos vectores dados, útil para cálculos de normales a superficies
Normalización
Normalización de un vector
Un vector normalizado tiene magnitud 1 y se calcula dividiendo cada componente entre la magnitud del vector:
Importante para trabajar con direcciones en gráficos.
Ángulo entre dos vectores
Para dos vectores
Polígonos 2D
Perímetro de un Polígono
donde
O por sus coordenadas
Área de un Polígono
Para un polígono con vértices
donde
Convexidad de un polígono
Un polígono es convexo si todos los ángulos internos son menores a
Punto dentro de un polígono
Dado un polígono
- Si el número de cruces es impar,
está dentro del polígono - Si es par, está fuera.
Transformaciones en 2D
Traslación
Para un punto
Rotación
Para rotar un punto
Escalado
Para escalar un punto
Transformaciones en 2D Homogéneas
Traslación
Rotación
Para un ángulo
Escalado
Reflexión respecto a una Línea
Para reflejar un punto
Transformaciones en 3D
Escalado
Escalado No Uniforme
Rotación alrededor del eje
Rotación alrededor del eje
Rotación alrededor del eje
Transformaciones en 3D Homogéneas
Traslación
Rotación alrededor del eje X
Rotación alrededor del eje Y
Rotación alrededor del eje Z
Escalado
Proyección
Proyección en Perspectiva
La proyección de un punto
Proyección Ortográfica
Para una proyección ortográfica, las coordenadas se mantienen:
Transformación de perspectiva:
Dado un punto
donde
Intersecciones
Intersección entre una línea y un polígono
Para determinar la intersección entre una línea y un polígono (definido por sus vértices):
Iterar sobre cada lado del polígono. Para cada segmento del polígono, aplica el método de intersección entre líneas descrito anteriormente.
Si hay intersecciones, almacenar los puntos.
Intersección entre dos polígonos
Para determinar la intersección entre dos polígonos:
Realizar un algoritmo de “barrier” (barrera) o “sweep line”. Ordenar los segmentos de ambos polígonos en función de sus posiciones en el eje
.Iterar sobre los segmentos de ambos polígonos. Utilizar el método de intersección de líneas para cada par de segmentos.
Si hay intersecciones, registrar los puntos.
Usar un algoritmo de “polygon clipping” (recorte de polígonos) para encontrar la región resultante de la intersección, como el algoritmo de Sutherland-Hodgman o el algoritmo de Greiner-Hormann.
Renderización en 2D
Algoritmo de Bresenham para Líneas
El algoritmo de Bresenham se emplea para trazar líneas en gráficos rasterizados.
Para un punto inicial
- Calcular la diferencia
y . - Establecer
. - Iterar a través de
desde a :- Si
: Incrementar y actualizar . - Siempre actualizar
.
- Si
Relleno de Polígonos
Algoritmo de Relleno de Escaneo (Scanline). Este algoritmo se utiliza para rellenar polígonos.
- Ordenar los vértices del polígono por su coordenada y.
- Para cada línea de escaneo (y constante), encontrar las intersecciones con los lados del polígono.
- Dibujar entre los pares de intersecciones.
Antialiasing:
Métodos como el algoritmo de Xiaolin Wu para suavizar bordes.
Representación de objetos 3d
Modelos poligonales
Un objeto 3D se define mediante un conjunto de vértices
Representación de superficies
Superficies de Bézier, para una superficie cúbica de Bézier:
donde
Renderización en 3D
Renderizado Basado en Z-buffer
- Inicializar un buffer de profundidad con valores máximos.
- Para cada píxel, calcular la profundidad de los fragmentos y actualizar el buffer.
- Dibujar solo el fragmento más cercano.
Sombreado Phong
Para calcular el color de un píxel:
donde:
: intensidad final : coeficientes de reflexión ambiental, difusa y especular : intensidades de luz ambiental y de luz : vector de luz : normal a la superficie : vector reflejado : vector hacia la cámara : exponente especular