Saltar al contenido principal
LibreTexts Español

5.5: Coordenadas homogéneas

  • Page ID
    82362
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    En la sección anterior pudimos combinar rotación y escalado en una sola operación compuesta por multiplicación matricial. Desafortunadamente, la traducción aún no se puede incluir en el operador compuesto, ya que la hacemos por adición y no por multiplicación.

    Ejemplo\(\PageIndex{1}\)

    Supongamos que deseamos rotar la imagen\(G\)\(\frac{\pi}{3}\) alrededor del punto (−10,10). Nuestra matriz de rotación R (\(\theta\)) siempre gira alrededor del origen, por lo que debemos combinar tres transformaciones para lograr esto:

    1. traducir el punto (−10,10) al origen;
    2. rotar\(\frac{\pi}{3}\) radianes alrededor del origen; y
    3. traducir el origen de nuevo a (−10,10).

    Para el paso (i), tenemos\ (b_ {0} =\ left [\ begin {array} {l}
    10\\
    -10
    \ end {array}\ right]\) y

    \[\mathrm{G}_{1}=\mathrm{G}+\mathrm{b}_{0} 1^{T} \nonumber \]

    Para la etapa ii),

    \ [\ begin {align}
    \ mathrm {G} _ {2} &=\ mathrm {R}\ izquierda (\ frac {\ pi} {3}\ derecha)\ mathrm {G} _ {1}\ nonumber\\
    &=\ mathrm {R}\ izquierda (\ frac {\ pi} {3}\ derecha)\ izquierda [\ mathrm {G} +\ mathrm {b} _ {0} 1^ {T}\ derecha]\ nonumber\\
    &=\ mathrm {R}\ izquierda (\ frac {\ pi} {3}\ derecha)\ mathrm {G} +\ mathrm {R}\ izquierda (\ frac {\ pi} {3}\ derecha)\ mathrm {b} _ {0} 1^ {T}.
    \ end {align}\ nonumber\]

    Para el paso (iii), podemos usar −\(b_0\) del paso (i):

    \ [\ begin {align}
    \ mathrm {G} _ {\ text {new}} &=\ mathrm {G} _ {2} -\ mathrm {b} _ _ {0} 1^ {T}\ nonumber\\
    &=\ mathrm {R}\ left (\ frac {\ pi} {3}\ derecha)\ mathrm {G} +\ mathrm {R} izquierda\ (\ frac {\ pi} {3}\ derecha)\ mathrm {b} _ {0} 1^ {T} -\ mathrm {b} _ {0} 1^ {T}\ nonumber\\
    &=\ mathrm {R}\ left (\ frac {\ pi} {3}\ derecha)\ mathrm {G} +\ izquierda [\ izquierda (\ mathrm {R}\ izquierda (\ frac {\ pi} {3}\ derecha) -\ mathrm {I}\ derecha)\ mathrm {b} _ {0}\ derecha] 1^ {T}.
    \ end {align}\ nonumber\]

    En este ejemplo no pudimos encontrar un solo operador de matriz\(A\) para hacer todo el trabajo. La transformación total tomó la forma

    \[\mathrm{G}_{\text {new }}=\mathrm{AG}+\mathrm{b} 1^{T} \nonumber \]

    Esto se denomina transformación afín porque implica tanto la multiplicación por como\(A\) la adición de una matriz constante. Esto contrasta con la transformación lineal más deseable, que implica sólo multiplicar por\(A\).

    Ahora vamos a avanzar hacia una representación modificada de la imagen y los operadores reescribiendo la última ecuación como

    \ [\ mathrm {G} _ {\ text {new}} = [\ mathrm {Ab}]\ left [\ begin {array} {l}
    \ mathrm {G}\\
    1^ {T}
    \ end {array}\ derecha]\ nonumber\]

    donde en el ejemplo tuvimos\(A = \mathrm{R}\left(\frac{\pi}{3}\right)\) y\(b=\left(\mathrm{R}\left(\frac{\pi}{3}\right)-\mathrm{I}\right) b_{0}\).

    Ejercicio\(\PageIndex{1}\)

    Demostrar que, para cualquier matriz A, B, C, D de tamaños compatibles,

    \ [\ mathrm {AB} +\ mathrm {CD} =\ left [\ begin {array} {ll}
    A &\ mathrm {C}
    \ end {array}\ right]\ left [\ begin {array} {l}
    \ mathrm {B}\
    \ mathrm {D}
    \ end {array}\ right]\ nonumber\]

    La matriz\ (\ left [\ begin {array} {l}
    \ mathrm {G}\\
    1^ {T}
    \ end {array}\ right]\) parece

    \ [\ left [\ begin {array} {lll}
    x_ {1} & x_ {2} & x_ {n}\\
    y_ {1} & y_ {2} & y_ {n}\\
    1 & 1 & 1
    \ end {array}\ derecha]\ nonumber\]

    y los puntos\((x_i,y_i,1)\) se denominan coordenadas homogéneas. Podemos modificar la Ecuación 5 para que la nueva matriz de puntos esté también en coordenadas homogéneas:

    \ [\ left [\ begin {array} {l}
    \ mathrm {G} _ {\ text {new}}\\
    1^ {T}
    \ end {array}\ right] =\ left [\ begin {array} {ll}
    \ mathrm {A} &\ mathrm {b}\
    \ mathrm {O} ^ {T} & 1
    \ end {array}\ right]\ left [begin\ {array} {l}
    \ mathrm {G} \\
    1^ {T}
    \ end {array}\ derecha]\ nonumber\]

    En la nueva representación, cada punto de la imagen tiene una tercera coordenada, que siempre es un 1. La transformación homogénea es una matriz 3×3,

    \ [\ mathrm {A} _ {h} =\ left [\ begin {array} {ll}
    \ mathrm {A} &\ mathrm {b}\\
    0^ {T} & 1
    \ end {array}\ derecha]\ text {,}\ nonumber\]

    que es capaz de traslación, rotación y escalado, todo por multiplicación matricial. Así, usando coordenadas homogéneas, podemos construir transformaciones compuestas que incluyen la traducción.

    En coordenadas homogéneas, tenemos

    \ [\ mathrm {R} (\ theta) =\ left [\ begin {array} {lll}
    \ cos\ theta & -\ sin\ theta & 0\\\ sin
    \ theta &\ cos\ theta & 0\\
    0 & 0 & 0 & 1
    \ end {array}\ derecha]\ nonumber\]

    \ [\ mathrm {S}\ izquierda (s_ {x}, s_ {y}\ derecha) =\ izquierda [\ begin {array} {lll}
    s_ {x} & 0 & 0\\
    0 & s_ {y} & 0\\
    0 & 0 & 1
    \ end {array}\ derecha]\ nonumber\]

    \ [\ mathrm {T}\ izquierda (t_ {x}, t_ {y}\ derecha) =\ izquierda [\ begin {array} {lll}
    1 & 0 & t_ {x}\\
    0 & 1 & t_ {y}\\
    0 & 0 & 1
    \ end {array}\ derecha]\ nonumber\]

    Ejemplo\(\PageIndex{2}\)

    La transformación compuesta para triplicar el tamaño de una imagen y luego moverla 2 unidades a la izquierda es

    \ [\ mathrm {A} =\ left [\ begin {array} {lll}
    1 & 0 & -2\\
    0 & 1 & 0\\ 0 &
    0 & 1
    \ end {array}\ right]\ left [\ begin {array} {lll}
    3 & 0 & 0\\ 0 & 3 &
    0\\ 0 & 0\ 0 &
    0 & 0 & 1
    \ end {array}\ right] =\ left [\ begin {array} {lll}
    3 & 0 & -2\\
    0 & 3 & 0\\
    0 & 0 & 0 & 1
    \ end {array}\ derecha]\ nonumber\]

    Por otro lado, la transformación compuesta para mover una imagen 2 unidades a la izquierda y luego triplicar su tamaño es

    \ [\ mathrm {B} =\ left [\ begin {array} {lll}
    3 & 0 & 0\\ 0 & 3 &
    0\\ 0 &
    0 & 0 & 1
    \ end {array}\ right]\ left [\ begin {array} {lll}
    1 & 0 & 2\\ 0 & 1 &
    0\ 0 & 0 & 0 & 1 & 0\
    0
    \ end {array}\ right] =\ left [\ begin {array} {lll}
    3 & 0 & -6\\
    0 & 3 & 0\\
    0 & 0 & 0 & 1
    \ end {array}\ derecha]\ nonumber\]

    En este último caso, también se triplicó la distancia de la traslación.

    Ejercicio\(\PageIndex{2}\)

    Encuentre una única transformación compuesta en coordenadas homogéneas que rote una imagen por ángulo\(\theta\) alrededor del punto\((x_i,y_i)\) como en el Ejemplo 1.


    This page titled 5.5: Coordenadas homogéneas is shared under a CC BY 3.0 license and was authored, remixed, and/or curated by Louis Scharf (OpenStax CNX) via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.