// Politopo de borde-tangente y la esfera de tangencias de borde // David Eppstein, UC Irvine, 21 de mayo de 2001, modificado el 10 de abril de 2011configuración_global { asumido_gamma 2.2 luz ambiental < 3 , 3 , 3 > }light_source { < - 10 , 35 , - 15 > color < 4 , 4 , 4 > }// fuente_luz {<5, -10, -15> color <1.5,1.5,1.5>}// perp: <5,1, -6> <1,1,1> <7, -11,4> // perp: <5,2, -2> <0,1,1> <4, - 5,5>#declare p = < 1 , 1 , 1 > / sqrt ( 3 ); #declare q = < 7 , - 11 , 4 > / sqrt ( 186 ); cámara { ubicación < 5 , 1 , - 6 > look_at < 0.5 , 0 , 0 > arriba - q * 0.65 derecha p* 0.65 trasladar < - 0.1 , 0 , - 0.5 > rotar < 0 , - 5 , 0 > }esfera { < 0.0 , 0.0 , 0.0 >, 2 textura { acabado { especular 1 rugosidad 0.002 ambiente 0.1 difuso 0.05 reflexión 1 phong 0.3 phong_size 60 } pigmento { color rgbf < 0.2 , 0.2 , 1.5 , 0.7 > } } }#declare P_Surf = textura { acabado { ambiente 0.2 difuso 0.2 } pigmento { color rojo 1 verde 1 azul 1 } }polígono { 4 , < 0 , 2 , - 2 >, < 0 , 2 , 2 >, < 2 , 0 , 1 >, < 2 , 0 , - 1 > textura { P_Surf } }polígono { 4 , < 0 , 2 , - 2 >, < 0 , 2 , 2 >, < - 2 , 0 , 1 >, < - 2 , 0 , - 1 > textura { P_Surf } }polígono { 4 , < 0 , - 2 , - 2 >, < 0 , - 2 , 2 >, < 2 , 0 , 1 >, < 2 , 0 , - 1 > textura { P_Surf } }polígono { 4 , < 0 , - 2 , - 2 >, < 0 , - 2 , 2 >, < - 2 , 0 , 1 >, < - 2 , 0 , - 1 > textura { P_Surf } }polígono { 3 , < 0 , 2 , 2 >, < 2 , 0 , 1 >, < 0 , - 2 , 2 > textura { P_Surf } }polígono { 3 , < 0 , 2 , - 2 >, < 2 , 0 , - 1 >, < 0 , - 2 , - 2 > textura { P_Surf } }polígono { 3 , < 0 , 2 , 2 >, < - 2 , 0 , 1 >, < 0 , - 2 , 2 > textura { P_Surf } }polígono { 3 , < 0 , 2 , - 2 >, < - 2 , 0 , - 1 >, < 0 , - 2 , - 2 > textura { P_Surf } }#declare P_Ring = textura { acabado { ambiente 0.3 difuso 0.3 } pigmento { color rojo 1 verde 0 azul 0 } }torus { 2 / sqrt ( 2 ), 0,013 textura { P_Ring } rotate < - 45 , 0 , 0 > traducir < 0 , 1 , - 1 > }torus { 2 / sqrt ( 2 ), 0,013 textura { P_Ring } rotate < 45 , 0 , 0 > traducir < 0 , 1 , 1 > }toro { 2 / sqrt ( 2 ), 0.013 textura { P_Ring } rotar < - 45 , 0 , 0 > trasladar < 0 , 1 , - 1 > rotar < 180 , 0 , 0 > }toro { 2 / sqrt ( 2 ), 0.013 textura { P_Ring } rotar < 45 , 0 , 0 > trasladar < 0 , 1 , 1 > rotar < 180 , 0 , 0 > }torus { 2 * sqrt ( 1 / 5 ), 0,013 textura { P_Ring } rotate < 90 , - asin ( 2 / sqrt ( 5 )) * 180 / pi , 0 > traducir < 8 / 5 , 0 , - 4 / 5 > }torus { 2 * sqrt ( 1 / 5 ), 0,013 textura { P_Ring } rotate < 90 , asin ( 2 / sqrt ( 5 )) * 180 / pi , 0 > traducir < 8 / 5 , 0 , 4 / 5 > }torus { 2 * sqrt ( 1 / 5 ), 0,013 textura { P_Ring } rotate < 90 , - asin ( 2 / sqrt ( 5 )) * 180 / pi , 0 > traducir < 8 / 5 , 0 , - 4 / 5 > rotar < 180 , 0 , 0 > }torus { 2 * sqrt ( 1 / 5 ), 0,013 textura { P_Ring } rotate < 90 , asin ( 2 / sqrt ( 5 )) * 180 / pi , 0 > traducir < 8 / 5 , 0 , 4 / 5 > rotate < 180 , 0 , 0 > }