2012-05-17 197 views
6

A menudo veo las palabras 'vector' y 'vertex' ('vértices' en plural) que se utilizan en contextos de programación 3D.¿Cuál es la diferencia entre un vector y un vértice?

Por lo que puedo decir, ambos describen un punto en el espacio n-dimensional. El framework XNA por ejemplo tiene clases Vector2, Vector3 y Vector4, pero no parece haber una clase Vertex.

¿Cuál es la diferencia exacta entre un vector y un vértice?

Respuesta

13

A 'vector' es un concepto matemático; crudamente, representa un desplazamiento en algún espacio de coordenadas. Un vértice es un elemento de alguna geometría 3D (o 2D, realmente) que típicamente tiene una posición y algunos otros atributos (color, coordenadas de textura, etc.).

La posición de un vértice (y por lo tanto a veces el vértice mismo) se puede representar por un vector si se supone que el vector es un desplazamiento desde el origen del sistema de coordenadas. A veces las personas llaman a esta representación de un vector un "vector de posición".

Por lo tanto, aproximadamente, la diferencia es que los vectores se pueden usar para describir (en parte o en su totalidad) un vértice.

+5

La parte importante a tener en cuenta aquí es que un vector solo contiene los datos posicionales, mientras que un vértice puede (y generalmente lo hace) contener más información que solo su posición. – CodeHxr

+0

En XNA, y posiblemente en otros marcos gráficos 3D, existe una clase Vector4. Dado que los humanos solo pueden observar 3 dimensiones espaciales, ¿la clase Vector4 se usa para los vértices? Si es así, ¿por qué se llama vector? – lesderid

+3

@lesderid Más formalmente, los vectores son un elemento de un espacio vectorial y pueden tener n coordenadas. Si bien es cierto que los vectores de 1, 2 y 3 dimensiones tienen relaciones geométricas convenientes con el espacio 3D que los humanos pueden visualizar, eso en sí mismo no es una propiedad intrínseca de los vectores. Dicho esto, los vectores de 4 componentes se usan comúnmente como atributos de vértice (típicamente para atributos de posición o color). Son útiles para la posición porque permiten transformaciones de matriz 4x4 y son útiles para los colores solo porque pueden almacenar cuatro componentes (RGBA). –

Cuestiones relacionadas