Main Content

Parches multifacéticos

Ejemplo: definir un cubo

Un cubo se define por ocho vértices que forman seis lados. Esta ilustración muestra las coordenadas, y-de los vértices que definen un cubo en el que los lados son una unidad de longitud.x-y-z

Si especifica los argumentos, y-Coordinate como vectores, se representan como un único polígono con puntos conectados en secuencia.x-y-z Si los argumentos son matrices, dibuja un polígono por columna, produciendo un único parche con varias caras.MATLAB® Estas caras no necesitan estar conectadas y pueden intersecarse por sí mismas.

Alternativamente, puede especificar las coordenadas de cada vértice único y el orden en el que se conectan para formar las caras. Los ejemplos de esta sección ilustran ambas técnicas.

Al especificar las coordenadas X, y y Z

Cada una de las seis caras tiene cuatro vértices. Debido a que no es necesario cerrar cada Polígono (es decir, los vértices primero y último no necesitan ser los mismos), puede definir este cubo utilizando una matriz de 4 por 6 para cada una de las-,-, y-coordenadas.xyz

Cada columna de las matrices especifica una cara diferente. Aunque solo hay ocho vértices, debe especificar 24 vértices para definir las seis caras. Puesto que cada cara comparte vértices con otras cuatro caras, puede definir el parche de forma más eficaz definiendo cada vértice una sola vez y, a continuación, especificando el orden en el que se conectan estos vértices para formar cada cara. El parche y las propiedades definen los parches de esta manera.VerticesFaces

Especificar caras y vértices

Estas matrices especifican el cubo mediante YVertices .Faces

El uso de la técnica de vértices/caras puede ahorrar una cantidad considerable de memoria del equipo cuando las revisiones contienen un gran número de caras. Esta técnica requiere la sintaxis de la función formal, que implica asignar valores a las propiedades y explícitamente.patchVerticesFaces Por ejemplo,

patch('Vertices',vertex_matrix,'Faces',faces_matrix) 

Dado que la sintaxis de alto nivel no asigna automáticamente colores de cara o arista, debe establecer las propiedades apropiadas para producir parches con colores que no sean el color de cara blanco predeterminado y el color de borde negro.

Color de cara plana

El color de la cara plana es el resultado de especificar un color por cara. Por ejemplo, mediante la técnica de vértices/caras y la propiedad para definir el color, esta instrucción especifica un color por cara y establece la propiedad en.FaceVertexCDataFaceColorflat

vert = [0 0 0;1 0 0;1 1 0;0 1 0;0 0 1;1 0 1;1 1 1;0 1 1]; fac = [1 2 6 5;2 3 7 6;3 4 8 7;4 1 5 8;1 2 3 4;5 6 7 8]; patch('Vertices',vert,'Faces',fac,...       'FaceVertexCData',hsv(6),'FaceColor','flat') 

Ajuste los ejes:

view(3) axis vis3d

Dado que truecolor especificado con la propiedad tiene el mismo formato que un mapa de colores (es decir, una matriz n-by-3 de valores RGB), en este ejemplo se utiliza el colores para generar los seis colores necesarios para el sombreado plano.FaceVertexCDataMATLABhsv

Para asignar colores de cara al mapa de color actual, asigne una matriz n-by-1 a la propiedad:FaceVertexCData

patch('Vertices',vert,'Faces',fac,...       'FaceVertexCData',(1:6)','FaceColor','flat')

Ajuste los ejes:

view(3) axis vis3d

Color de cara interpolada

El color de cara interpolada significa que los colores de vértice de cada cara definen una transición de color de un vértice al siguiente. Para interpolar los colores entre los vértices, debe especificar un color para cada vértice y establecer la propiedad.FaceColorinterp

patch('Vertices',vert,'Faces',fac,...       'FaceVertexCData',hsv(8),'FaceColor','interp') 

Ajuste los ejes:

view(3) axis vis3d

produce un cubo con cada cara coloreada interpolando los colores del vértice.

Para especificar el mismo color usando la técnica x, y, z, c, c debe ser un array-by--by-3, donde las dimensiones de x, y y z son-por-.mnmn

Este diagrama muestra la correspondencia entre el FaceVertexCData y propiedades.CData

analiza las técnicas de coloración con más detalle.Cómo se relacionan los datos de parches a un mapa de colores