Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Transformaciones admitidas por hgtransform

Transformar objetos

La propiedad del objeto de transformación aplica una transformación a todos los elementos secundarios del objeto al unísono.Matrix Las transformaciones incluyen rotación, traducción y escalado. Defina una transformada con una matriz de transformación de cuatro por cuatro.

Crear una matriz de transformación

La función simplifica la construcción de matrices para realizar la rotación, la traducción y el escalado.makehgtform Para obtener información sobre la creación de matrices de transformación utilizando, consulte.makehgtformAnidar transformaciones para movimientos complejos

Rotación

Las transformaciones de rotación siguen la regla de la mano derecha: giran los objetos sobre el-,-, o eje, con ángulos positivos que giran en sentido antihorario, mientras que la observación a lo largo del eje respectivo hacia el origen.xyz Si el ángulo de rotación es Theta, la siguiente matriz define una rotación de Theta sobre el eje x.

Para crear una matriz de transformación para la rotación sobre un eje arbitrario, utilice la función.makehgtform

Traducción

Las transformaciones de conversión mueven objetos con respecto a sus ubicaciones actuales. Especifique la traducción como distanciastx,tyYtz en unidades de espacio de datos. La siguiente matriz muestra la ubicación de estos elementos en la matriz de transformación.

Escala

Las transformaciones de escalado cambian el tamaño de los objetos. Especifique los factores de escalasx,syYsz y construya la siguiente matriz.

No puede utilizar factores de escala inferiores o iguales a cero.

La transformación predeterminada

La transformación predeterminada es la matriz de identidad, que se puede crear con la función.eye Aquí está la matriz de identidad.

Ver.Deshacer operaciones de transformación

Transformaciones no permitidas: perspectiva

Las transformaciones de perspectiva cambian la distancia a la que se visualiza un objeto. La siguiente matriz es un ejemplo de una matriz de transformación de perspectiva, que los gráficos no permiten.MATLAB®

En este caso,py es el factor de perspectiva.

Transformaciones no permitidas: cizalla

Las transformaciones de cizallamiento mantienen todos los puntos a lo largo de una línea determinada (o plano, en coordenadas 3D) fijo mientras se desplaza el resto de puntos paralelos a la línea (plano) proporcional a su distancia perpendicular de la línea fija (plano). La siguiente matriz es un ejemplo de una matriz de transformación de cizallamiento, que no permite.hgtransform

En este caso,sx es el factor de cizallamiento y puede reemplazar cualquier elemento cero en una matriz de identidad.

Las transformaciones relativas absolutas frente a

Las transformaciones se especifican en términos absolutos, no en relación con la transformación actual. Por ejemplo, si aplica una transformación que traduce el objeto de transformación 5 unidades en la dirección y, a continuación, aplica otra transformación que lo traduce 4 unidades en la dirección, la posición resultante del objeto es 4 unidades en la dirección de su pos original ición.xyy

Si desea que las transformaciones se acumulen, debe concatenar las transformaciones individuales en una sola matriz. Ver.Combinando transformaciones en una matriz

Combinando transformaciones en una matriz

Por lo general, es más eficaz combinar varias operaciones de transformación en una matriz concatenando (multiplicar) las matrices individuales y estableciendo la propiedad en el resultado.Matrix La multiplicación matricial no es conmutativa, por lo que el orden en el que se multiplican las matrices afecta al resultado.

Por ejemplo, supongamos que desea realizar una operación que escala, traduce y, a continuación, rota. Suponiendo, y son sus matrices de transformación individuales, multiplique las matrices de la siguiente manera:RTS

C = R*T*S % operations are performed from right to left 

es la matriz de escalado, es la matriz de traducción, es la matriz de rotación y es el compuesto de las tres operaciones.STRC A continuación, establezca la propiedad del objeto de transformación en:MatrixC

hg = hgtransform('Matrix',C); 

Multiplicar la transformación por la matriz de identidad

Los siguientes conjuntos de instrucciones no son equivalentes. El primer conjunto:

hg.Matrix = C; hg.Matrix = eye(4);

resulta en la eliminación de la transformación C. El segundo conjunto:

I = eye(4); C = I*R*T*S; hg.Matrix = C;

aplica la transformación.C La concatenación de la matriz de identidades con otras matrices no tiene ningún efecto en la matriz compuesta.

Deshacer operaciones de transformación

Dado que las operaciones de transformación se especifican en términos absolutos (no en relación con la transformación actual), puede deshacer una serie de transformaciones estableciendo la transformación actual en la matriz de identidad. Por ejemplo:

hg = hgtransform('Matrix',C); ... hg.Matrix = eye(4);

Devuelve los objetos contenidos en el objeto de transformación, a su orientación antes de aplicar la transformación.hgC

Para obtener más información sobre la matriz de identidad, consulte la funcióneye