En este tema, exploraremos cómo se representan los objetos en un espacio tridimensional (3D). La representación de objetos 3D es fundamental para la creación de gráficos por computadora, simulaciones y aplicaciones de realidad virtual y aumentada. A lo largo de esta sección, aprenderemos sobre los conceptos básicos y avanzados que permiten la manipulación y visualización de objetos en 3D.

Contenidos

  1. Modelos de Representación 3D
    • Mallas Poligonales
    • Superficies Paramétricas
    • Modelos de Vóxeles
  2. Coordenadas Homogéneas
  3. Representación de Puntos, Líneas y Polígonos
  4. Ejemplos Prácticos
  5. Ejercicios y Soluciones

  1. Modelos de Representación 3D

Mallas Poligonales

Las mallas poligonales son una de las formas más comunes de representar objetos 3D. Una malla poligonal está compuesta por vértices, aristas y caras. Las caras suelen ser triángulos o cuadriláteros.

  • Vértices: Puntos en el espacio 3D definidos por coordenadas (x, y, z).
  • Aristas: Líneas que conectan dos vértices.
  • Caras: Superficies planas delimitadas por aristas.

Ejemplo de Malla Poligonal

Vértices:
V1 = (1, 1, 1)
V2 = (1, -1, 1)
V3 = (-1, -1, 1)
V4 = (-1, 1, 1)
V5 = (1, 1, -1)
V6 = (1, -1, -1)
V7 = (-1, -1, -1)
V8 = (-1, 1, -1)

Caras:
F1 = (V1, V2, V3, V4)
F2 = (V5, V6, V7, V8)
F3 = (V1, V2, V6, V5)
F4 = (V2, V3, V7, V6)
F5 = (V3, V4, V8, V7)
F6 = (V4, V1, V5, V8)

Superficies Paramétricas

Las superficies paramétricas se definen mediante funciones matemáticas que utilizan parámetros para describir la superficie. Un ejemplo común es la superficie de una esfera.

Ejemplo de Superficie Paramétrica

La ecuación paramétrica de una esfera de radio \( r \) es:

\[ \begin{cases} x(u, v) = r \sin(u) \cos(v)
y(u, v) = r \sin(u) \sin(v)
z(u, v) = r \cos(u) \end{cases} \]

donde \( u \) y \( v \) son parámetros que varían dentro de ciertos rangos.

Modelos de Vóxeles

Los modelos de vóxeles representan objetos 3D mediante una división del espacio en pequeños cubos llamados vóxeles (volumetric pixels). Cada vóxel contiene información sobre la presencia o ausencia de material en esa región del espacio.

Ejemplo de Modelo de Vóxeles

Vóxeles:
(0, 0, 0) = 1
(0, 0, 1) = 1
(0, 1, 0) = 0
(0, 1, 1) = 1
...

  1. Coordenadas Homogéneas

Las coordenadas homogéneas son una extensión de las coordenadas cartesianas que facilitan la representación y transformación de objetos en 3D. En coordenadas homogéneas, un punto \((x, y, z)\) se representa como \((x, y, z, w)\), donde \( w \) es un factor de escala.

Ejemplo de Coordenadas Homogéneas

Un punto \((2, 3, 4)\) en coordenadas cartesianas se puede representar en coordenadas homogéneas como \((2, 3, 4, 1)\).

  1. Representación de Puntos, Líneas y Polígonos

Puntos

Un punto en el espacio 3D se representa por sus coordenadas \((x, y, z)\).

Líneas

Una línea en el espacio 3D se puede representar mediante dos puntos extremos \((x1, y1, z1)\) y \((x2, y2, z2)\).

Polígonos

Un polígono en 3D se define por una secuencia de puntos (vértices) conectados por líneas (aristas).

Ejemplo de Representación de un Triángulo

Vértices:
V1 = (1, 1, 1)
V2 = (2, 3, 4)
V3 = (5, 6, 7)

Triángulo:
T = (V1, V2, V3)

  1. Ejemplos Prácticos

Ejemplo 1: Representación de un Cubo

Vértices:
V1 = (1, 1, 1)
V2 = (1, -1, 1)
V3 = (-1, -1, 1)
V4 = (-1, 1, 1)
V5 = (1, 1, -1)
V6 = (1, -1, -1)
V7 = (-1, -1, -1)
V8 = (-1, 1, -1)

Caras:
F1 = (V1, V2, V3, V4)
F2 = (V5, V6, V7, V8)
F3 = (V1, V2, V6, V5)
F4 = (V2, V3, V7, V6)
F5 = (V3, V4, V8, V7)
F6 = (V4, V1, V5, V8)

Ejemplo 2: Representación de una Esfera

Usando la ecuación paramétrica de una esfera:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = np.outer(np.cos(u), np.sin(v))
y = np.outer(np.sin(u), np.sin(v))
z = np.outer(np.ones(np.size(u)), np.cos(v))

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, color='b')
plt.show()

  1. Ejercicios y Soluciones

Ejercicio 1: Representación de un Tetraedro

Enunciado: Representa un tetraedro en el espacio 3D utilizando vértices y caras.

Solución:

Vértices:
V1 = (1, 1, 1)
V2 = (1, -1, -1)
V3 = (-1, 1, -1)
V4 = (-1, -1, 1)

Caras:
F1 = (V1, V2, V3)
F2 = (V1, V2, V4)
F3 = (V1, V3, V4)
F4 = (V2, V3, V4)

Ejercicio 2: Transformación de Coordenadas Homogéneas

Enunciado: Convierte el punto \((3, 4, 5)\) a coordenadas homogéneas y luego aplícale una transformación de escala con un factor de 2.

Solución:

  1. Convertir a coordenadas homogéneas: \((3, 4, 5) \rightarrow (3, 4, 5, 1)\)

  2. Aplicar la transformación de escala: \[ \begin{pmatrix} 2 & 0 & 0 & 0
    0 & 2 & 0 & 0
    0 & 0 & 2 & 0
    0 & 0 & 0 & 1
    \end{pmatrix} \begin{pmatrix} 3
    4
    5
    1
    \end{pmatrix}

    \begin{pmatrix} 6
    8
    10
    1
    \end{pmatrix} \]

Conclusión

En esta sección, hemos aprendido sobre las diferentes formas de representar objetos en 3D, incluyendo mallas poligonales, superficies paramétricas y modelos de vóxeles. También hemos explorado el uso de coordenadas homogéneas y cómo representar puntos, líneas y polígonos en el espacio 3D. Los ejemplos prácticos y ejercicios proporcionados deben ayudar a consolidar estos conceptos y prepararte para las siguientes secciones del curso.

© Copyright 2024. Todos los derechos reservados