En los gráficos vectoriales por computadora , los sistemas CAD y los sistemas de información geográfica , la primitiva geométrica (o prim ) es la forma geométrica más simple (es decir, "atómica" o irreducible) que el sistema puede manejar (dibujar, almacenar). A veces, las subrutinas que dibujan los objetos correspondientes también se denominan "primitivas geométricas". Las primitivas más "primitivas" son el punto y el segmento de línea recta , que eran todo lo que tenían los primeros sistemas de gráficos vectoriales.
En geometría sólida constructiva , los primitivos son formas geométricas simples como un cubo , un cilindro , una esfera , un cono , una pirámide o un toro .
Los sistemas modernos de gráficos por computadora en 2D pueden operar con primitivos que son curvas (segmentos de líneas rectas, círculos y curvas más complicadas), así como formas (cajas, polígonos arbitrarios, círculos).
Un conjunto común de primitivas bidimensionales incluye líneas, puntos y polígonos , aunque algunas personas prefieren considerar primitivas a los triángulos , porque cada polígono se puede construir a partir de triángulos. Todos los demás elementos gráficos se construyen a partir de estas primitivas. En tres dimensiones, los triángulos o polígonos ubicados en el espacio tridimensional se pueden utilizar como primitivas para modelar formas 3D más complejas. En algunos casos, las curvas (como las curvas de Bézier , los círculos , etc.) pueden considerarse primitivas; en otros casos, las curvas son formas complejas creadas a partir de muchas formas primitivas rectas.
El conjunto de primitivas geométricas se basa en la dimensión de la región que se representa: [1]
En los SIG, la superficie del terreno se suele denominar coloquialmente "bidimensional", porque solo es necesario representar la superficie superior. Por lo tanto, la elevación se puede conceptualizar como una propiedad o función de campo escalar del espacio bidimensional, lo que le otorga una serie de eficiencias de modelado de datos sobre objetos tridimensionales reales. Una forma de cualquiera de estas dimensiones mayor que cero consta de un número infinito de puntos distintos. Debido a que los sistemas digitales son finitos, solo se puede almacenar un conjunto de muestra de los puntos de una forma. Por lo tanto, las estructuras de datos vectoriales suelen representar primitivas geométricas utilizando una muestra estratégica, organizada en estructuras que facilitan la interpolación del resto de la forma por parte del software en el momento del análisis o la visualización, utilizando los algoritmos de la geometría computacional . [2]
A lo largo de la historia de los sistemas de información geográfica se han desarrollado una amplia variedad de formatos y estructuras de datos vectoriales , pero todos ellos comparten la base fundamental de almacenar un conjunto básico de primitivas geométricas para representar la ubicación y la extensión de los fenómenos geográficos. Las ubicaciones de los puntos casi siempre se miden dentro de un sistema de coordenadas terrestre estándar, ya sea el sistema de coordenadas geográficas esféricas (latitud/longitud) o un sistema de coordenadas planas, como el Universal Transverse Mercator . También comparten la necesidad de almacenar un conjunto de atributos de cada característica geográfica junto con su forma; tradicionalmente, esto se ha logrado utilizando los modelos de datos, formatos de datos e incluso el software de bases de datos relacionales .
Los primeros formatos vectoriales, como POLYVRT , ARC/INFO Coverage y el shapefile de Esri admiten un conjunto básico de primitivas geométricas: puntos, polilíneas y polígonos, solo en un espacio bidimensional y los dos últimos solo con interpolación de línea recta. También se agregaron estructuras de datos TIN para representar superficies de terreno como mallas de triángulos. Desde mediados de la década de 1990, se han desarrollado nuevos formatos que amplían la gama de primitivas disponibles, generalmente estandarizadas por la especificación Simple Features del Open Geospatial Consortium . [3] Las extensiones primitivas geométricas comunes incluyen: coordenadas tridimensionales para puntos, líneas y polígonos; una cuarta "dimensión" para representar un atributo medido o tiempo; segmentos curvos en líneas y polígonos; anotación de texto como una forma de geometría; y mallas poligonales para objetos tridimensionales.
Con frecuencia, una representación de la forma de un fenómeno del mundo real puede tener una dimensión diferente (normalmente menor) que la del fenómeno representado. Por ejemplo, una ciudad (una región bidimensional) puede representarse como un punto, o una carretera (un volumen tridimensional de material) puede representarse como una línea. Esta generalización dimensional se correlaciona con las tendencias en la cognición espacial. Por ejemplo, preguntar la distancia entre dos ciudades presupone un modelo conceptual de las ciudades como puntos, mientras que dar instrucciones que implican viajar "hacia arriba", "hacia abajo" o "a lo largo" de una carretera implica un modelo conceptual unidimensional. Esto se hace con frecuencia con fines de eficiencia de datos, simplicidad visual o eficiencia cognitiva, y es aceptable si se entiende la distinción entre la representación y lo representado, pero puede causar confusión si los usuarios de la información suponen que la forma digital es una representación perfecta de la realidad (es decir, creen que las carreteras son realmente líneas).
En el software CAD o de modelado 3D , la interfaz puede ofrecer al usuario la posibilidad de crear primitivos que pueden modificarse posteriormente mediante ediciones. [4] Por ejemplo, en la práctica del modelado de cajas , el usuario comenzará con un cuboide y luego utilizará la extrusión y otras operaciones para crear el modelo. En este uso, el primitivo es solo un punto de partida conveniente, en lugar de la unidad fundamental del modelado.
Un paquete 3D también puede incluir una lista de primitivos extendidos, que son formas más complejas que vienen con el paquete. Por ejemplo, una tetera aparece como primitiva en 3D Studio Max .
Existen varios aceleradores gráficos con aceleración de hardware para renderizar primitivas específicas, como líneas o triángulos, frecuentemente con mapeo de texturas y sombreadores . Los aceleradores 3D modernos generalmente aceptan secuencias de triángulos como tiras de triángulos .