Hasta este momento se ha visto varios ejemplos de programación gráfica implementando diferentes técnicas. A partir de ahora nos centraremos en generar nuestra imagen como un conjunto de objetos visuales. Crearemos un modelo para representar nuestra escena describiendo los objetos que la componen. Representaremos cada objeto en términos de su geometría y topología. La necesidad de colocar los objetos en la escena nos fuerza a describirlos según su posición. Nos basaremos en un sistema de coordenadas, como el plano cartesiano, para situar cada uno de estos objetos.
Para crear y manipular modelos para poder crear las escenas que compondrán nuestra imagen, necesitamos describir nuestros modelos y sus operaciones numérica y geométricamente. Esto supone usar las matemáticas para poder desarrollar las imágenes que nos interesan generar.
Para poder entender las operaciones y algoritmos que usaremos para modelar nuestros objetos y escenas, debemos comprender algunos conceptos matemáticos fundamentales.
Vamos a definir brevemente los conceptos acerca de tres tipos básicos de entidades para describir nuestros objetos y que nos proporcionarán ciertas propiedades importantes:
Básicamente, se trata de números reales que tienen dos operaciones importantes: la suma y la multiplicación. También tienen las siguientes propiedades:
a + b = b + a a * b = b * a
a + (b + c) = (a + b) + c a * (b * c) = (a * b) * c
a * (b + c) = (a * b) + (a * c)
Existen dos escalares especiales: el elemento neutro 0 para la suma y el 1 para la multiplicación. Esto es,
a + 0 = 0 + a = a a * 1 = 1 * a = a
Además, existen las inversas de la suma, descrita como -a, y de la multiplicación, descrita como a-1. Esto es,
a + (-a) = 0 a * a-1 = 1
Un punto no es nada más que una ubicación en un espacio sin siquiera tener tamaño. Los puntos existen irrelevantemente de un sistema de referencia o de coordenadas. Obviamente, sería inconveniente e impráctico describir cada punto existente sin usar un sistema de coordenadas.
Geométricamente, un vector es un segmento orientado que tiene dirección, sentido (u orientación), y magnitud, representada como la longitud del segmento. Un vector no tiene posición, por lo que dos vectores son idénticos si tienen la misma dirección, orientación, y magnitud. Al igual que ocurre con los puntos, necesitaremos un sistema de coordenadas para referirnos a cualesquier vectores.
Nota: Sugerimos consultar el Apéndice 2 para profundizar en el tema de los vectores.
Nos interesa hablar de ciertos espacios concretos, como son:
Nota: Consulten el Apéndice 2 para más información acerca de estas operaciones.
Una línea recta es un conjunto infinito de puntos que comparte una misma pendiente o dirección. Podemos describir cualquier punto en una línea con las entidades descritas anteriormente; esto es,
P(t) = P0 + t v
donde P0 es un punto arbitrario y conocido, t es un escalar, y v es un vector. P(t) describirá cualquier punto en la línea según el parámetro t.
Al ajustar un sistema de coordenadas, la fórmula de una línea recta, en dos dimensiones, se convierte en la siguiente:
(x(t),y(t)) = (x0,y0) + t (vx,vy)
Se puede convertir lo anterior en el siguiente sistema de ecuaciones:
x(t) = x0 + t vx y(t) = y0 + t vy
Despejando el parámetro t de este sistema de ecuaciones, obtenemos la siguiente fórmula más familiar:
(y(x)-y0) = m (x-x0)
donde m es la pendiente que es igual a vy/vx. Esta ecuación termina siendo el siguiente polinomio,
y(x) = m x + b
Un polígono es convexo si cada segmento que une cada dos de sus vértices existe completamente en el interior de tal polígono. También podemos decir que un polígono es convexo si el ángulo formado por cada pareja contigua de aristas queda comprendida entre 0° y 180° (ambos incluidos).
![]() ![]() |
Ahora podemos continuar con otros conceptos que necesitamos para crear y controlar los modelos de los objetos gráficos. Los objetos que vamos a tratar por el momento serán compuestos por uno o varios polígonos convexos. Al manejar polígonos, podemos describirlos a través de un conjunto de vértices y aristas. Trabajar con polígonos, vértices, y aristas es más simple que manipular objetos más complejos basados en fórmulas y funciones matemáticas complicadas. Si usáramos objetos complejos, se nos complicaría bastante la generación de la imagen. En otros capítulos, veremos otras técnicas avanzadas para crear modelos más complicados pero más realistas. Por el momento, veremos las técnicas necesarias para generar y visualizar objetos basados en modelos que aproximen aquellos objetos más complicados.
© Mayo de 2009 - Septiembre de 2009, Steven R. Davidson, steven arroba conclase punto net