Tengo una elipse con un "radio" mayor y menor determinados. Le aplico una transformación afín 2D. Luego, quiero dibujar un borde uniforme dentro de esta nueva forma, como si un círculo se enrollara a lo largo del borde interior de la elipse recién transformada, y en todos los lugares que el círculo tocó se dibujara en un color diferente. O como si la nueva forma hubiera sido delineada con un marcador.
Esto divide esencialmente la elipse en una forma "exterior" que separa el borde del resto de la escena, y una forma "interior" que separa el borde del interior de mi forma. Ver el diagrama al final de mi post.
En el caso de este diagrama, el borde mismo del contorno negro sería la forma exterior, y la forma definida por la transición del verde al negro sería la forma interior.
La forma exterior es una elipse, estoy bastante seguro, ya que es sólo una transformación afín de mi elipse original. No estoy seguro de si la forma interior que quiero es también una elipse. Si asumo que la forma interior tiene la misma transformación afín que la forma exterior, y sólo ajusto los radios de los ejes mayor/menor, obtengo algo como en el diagrama. La forma interior no coincide intuitivamente con la forma exterior. Es como si hubiera dibujado una elipse verde completamente arbitraria dentro de mi elipse negra. La elipse verde parece tener una rotación diferente incluso.
Así que mis preguntas: ¿La forma interior que quiero es realmente una elipse? Si es así, ¿cuáles son sus ejes mayores y menores, y tiene una transformación afín diferente de su padre? Si tiene una transformación diferente, ¿cómo la encuentro? Si no es una elipse, ¿qué es?
...
No he podido subir una imagen porque no tengo los puntos de reputación (ugh), pero este es el código para ello en SVG:
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg">
<g transform="skewY(30) rotate(-32)">
<ellipse cx="250" cy="225" rx="225" ry="125" style="fill:rgb(0,0,0);"/>
<ellipse cx="250" cy="225" rx="175" ry="75" style="fill:rgb(0,100,50);"/>
</g>
</svg>
Tanto Chrome como Firefox pueden mostrar esto si lo pones en un archivo de texto con una extensión .svg. Si alguien puede colgar una imagen, se lo agradecería (no a todos los sitios les gustan las extensiones svg... Puede que tengas que rasterizarlo en un png primero).
También es muy fácil jugar con diferentes transformaciones y ajustes para las elipses. El manual de SVG es útil para entender cómo se interpretan las transformaciones y las inclinaciones.