Gráficos isométricos en Inkscape
A veces me encuentro en la necesidad de hacer un diagrama usando una proyección isométrica. Cuando el diagrama es complicado la mejor opción es usar algún software de CAD como FreeCAD, pero a veces sólo se necesita un diagrama simple. Otra situación en la que esto es común es en videojuegos, donde se el arte isométrico y arte pixelado son bastante comunes.
Lo que queremos se muestra en la siguiente figura.
Es decir, queremos comenzar con cierto dibujo, o escrito en el caso del ejemplo, y queremos saber cómo se vería en una de las caras de una bloque isométrico.
A continuación, describiré brevemente las transformaciones involucradas en este proceso. Si sólo está interesado en la receta para hacer esto en Inkscape, pase al final de este post.
Transformaciones involucradas
Como estamos trabajando en una pantalla de computador, estamos hablando de 2 dimensiones. Por lo tanto, todas las transformaciones están representadas por matrices 2×2. En el ejemplo de interés en este post necesitamos las siguientes transformaciones:
Escalado vertical
Inclinación horizontal
Rotación
Las siguientes son las matrices de transformación.
Escalado en la dirección vertical
La matriz está dada por
donde \(a\) es el factor de escalamiento.
Inclinación horizontal
La matriz está dada por
donde \(a\) es el ángulo de inclinación.
Rotación
La matriz está dada por
donde \(a\) es el ángulo de rotación.
Transformación completa
La transformación completa está dada por
particularmente,
Estos valores parecen un poco arbitrarios, pero pueden obtenerse de la proyección isométrica misma. Pero esta explicación sería un poco larga para este post.
Tranformación en Inskcape
Ya tenemos las matrices de transformación y podemos usarlas en Inkscape. Pero primero, necesitamos entender cómo funciona. Inkscape usa SVG, el estándar web para gráficos vectoriales. Las transformaciones en SVG se realizan utilizando la siguiente matriz
que usa coordenadas homogéneas.
Entonces, se puede presionar Shift + Ctrl + M
y digitar
las componentes de las matrices que se obtuvieron anteriormente
para \(a\), \(b\), \(c\), y \(d\); dejando
\(e\) y \(f\) con el valor 0.
Sin embargo, mi método preferido es aplicar cada transformación después de
otro en el cuadro de diálogo Transformar (Shift + Ctrl + M
).
Y este es el método presentado en el resumen al final de esta publicación.
TL;DR
Si solo está interesado en las transformaciones necesarias en Inkscape Puedes consultar el resumen a continuación. Utiliza el tercer cuadrante como se presenta abajo.
Resumen
Tenga en cuenta que Inkscape trata la rotación en sentido horario como positiva. Opuesto a la notación común en matemáticas.
Comentarios
Comments powered by Disqus