lunes, 23 de abril de 2018

La botella de Klein con R

Como subproducto del desgaste intelectual sufrido en 'Amiga JuggleR. OpenGL con R', vamos a reutilizar la parametrización de la esfera que hicimos allí con el paquete rgl para definir un clásico peculiar en topología: la botella de Klein.

La botella se obtiene conectando los extremos de un cilindro de una manera especial, resultando en una forma que no tiene cara interior ni exterior. En realidad es una superficie de cuatro dimensiones, así que haciendo una pequeña trampa visualizamos su inmersión en 3D dejando que el cilindro generador se interseque a sí mismo.



He escogido la definición geométrica de Paul Chang, que descompone la botella en las cuatro primitivas paramétricas que se muestran a continuación.


~~~

Con un poco de imaginación y Wikipedia es fácil parametrizar otras primitivas. Lo hacemos con el cilindro, el cono, la banda de Moebius y el toro, primo hermano de la botella de Klein pero más de este mundo.



Reduciendo la densidad del facetado se consiguen contornos poligonales, como el "cilindro" de cuatro lado lados que forma la base del conjunto anterior.

Las transparencias en rgl en ocasiones generan algunos artefactos, como se ve en la tapa superior del cilindro. Las intersecciones entre cuerpos opacos hasta donde he podido probar se calculan de forma perfecta con facetados suficientemente densos.

En klein.R puede encontrarse el código de todas las primitivas y los ejemplos.

No hay comentarios:

Publicar un comentario

Por claridad del blog, por favor trata de utilizar una sintaxis lo más correcta posible y no abusar del uso de emoticonos, mayúsculas y similares.