3D impreso pelota de Ping-Pong (3 / 5 paso)

Paso 3: Esferas geodésicas

Ahora vamos a ver en cómo subdividir una esfera en un número determinado de
triángulos de forma aproximadamente similar. El método aquí descrito es
utiliza a menudo para construir aproximaciones poligonales de las esferas, tal como detalla
en este tutorial de OpenGL: http://www.opengl.org.ru/docs/pg/0208.html.
En nuestro caso, esto será el paso de la construcción para generar los agujeros que
transfrom nuestro regular bola en un geodeome-como.

Primero empezamos con un isocahedron regular , que tiene veinte caras triangulares, y
la interesante propiedad de que cada uno de sus vértices se encuentran sobre una esfera.
A continuación, para cada triángulo, nos dividimos cada uno de los tres bordes en el centro, que
nos da tres vértices adicionales que utilizamos para subdividir dicho triángulo
en cuatro triángulos más pequeños. Los tres vértices se traducen entonces hacia el exterior
por lo que se encuentran en la superficie de la esfera.

Script Isocahedron OpenJSCAD

 function main(){ var X = 0.525731112119133606; var Z = 0.850650808352039932; var radius = 20; var vdata = [ [-X, 0.0, Z], [ X, 0.0, Z ], [ -X, 0.0, -Z ], [ X, 0.0, -Z ], [ 0.0, Z, X ], [ 0.0, Z, -X ], [ 0.0, -Z, X ], [ 0.0, -Z, -X ], [ Z, X, 0.0 ], [ -Z, X, 0.0 ], [ Z, -X, 0.0 ], [ -Z, -X, 0.0 ] ]; // isocahedron vertex coordinates var tindices = [ [0, 4, 1], [ 0, 9, 4 ], [ 9, 5, 4 ], [ 4, 5, 8 ], [ 4, 8, 1 ], [ 8, 10, 1 ], [ 8, 3, 10 ], [ 5, 3, 8 ], [ 5, 2, 3 ], [ 2, 7, 3 ], [ 7, 10, 3 ], [ 7, 6, 10 ], [ 7, 11, 6 ], [ 11, 0, 6 ], [ 0, 1, 6 ], [ 6, 1, 10 ], [ 9, 0, 11 ], [ 9, 11, 2 ], [ 9, 2, 5 ], [ 7, 2, 11 ] ]; // isocahedron triangles return polyhedron({ points: vdata, triangles: tindices }).scale([radius, radius, radius]); } 

A continuación escribimos la función de la subdivisión para una aproximación de la esfera de unidad:

La función de subdvide

 /* fn subdivide(v1, v2, v3, addPolyCb, depth) * brief subdivides a triangle into 4 smaller ones * params v1, v2, v3 : triangle vertices * addPolyCb : callback for add polygon notification * depth : number of remaining subdivision iterations */ function subdivide(v1, v2, v3, addPolyCb, depth) { if(depth == 0) { addPolyCb(v1, v2, v3); return; } var v12 = v1.plus(v2).unit(); // middle of v1v2 edge projected on the unit sphere var v23 = v2.plus(v3).unit(); var v31 = v3.plus(v1).unit(); var newDepth = depth - 1; subdivide(v1, v12, v31, addPolyCb, newDepth); subdivide(v2, v23, v12, addPolyCb, newDepth); subdivide(v3, v31, v23, addPolyCb, newDepth); subdivide(v12, v23, v31, addPolyCb, newDepth); } 

El proceso de subdivisión funciona de forma recursiva; a partir de las 20 isocahedron
caras, cada paso de la subdivisión multiplica al número total de caras 4.
Por lo tanto, una profundidad de 1 genera un Poliedro de 80 caras.

Ahora podemos generar una aproximación de la esfera mediante una llamada a la función de subdividir
iterativamente sobre las caras de isocahedron como sigue:

80 caras esfera geodésica script

 function main() { var ballDiameter = 40; var ballRadius = ballDiameter/2.; var polygons = []; // list of polygons addPolyCb = function(v1, v2, v3) { polygons.push(new CSG.Polygon([ new CSG.Vertex(new CSG.Vector3D(v3.x,v3.y,v3.z)), new CSG.Vertex(new CSG.Vector3D(v2.x,v2.y,v2.z)), new CSG.Vertex(new CSG.Vector3D(v1.x,v1.y,v1.z)) ])); } createGeodesicSphere(addPolyCb, 1); var unitSphereApprox = CSG.fromPolygons(polygons); return unitSphereApprox.scale([ballRadius, ballRadius, ballRadius]); } // subdivides a unit isocahedron n=depth times and calls a callback for each created face function createGeodesicSphere(addPolyCb, depth) { var X = 0.525731112119133606; var Z = 0.850650808352039932; var vdata = [ [-X, 0.0, Z], [ X, 0.0, Z ], [ -X, 0.0, -Z ], [ X, 0.0, -Z ], [ 0.0, Z, X ], [ 0.0, Z, -X ], [ 0.0, -Z, X ], [ 0.0, -Z, -X ], [ Z, X, 0.0 ], [ -Z, X, 0.0 ], [ Z, -X, 0.0 ], [ -Z, -X, 0.0 ] ]; var tindices = [ [0, 4, 1], [ 0, 9, 4 ], [ 9, 5, 4 ], [ 4, 5, 8 ], [ 4, 8, 1 ], [ 8, 10, 1 ], [ 8, 3, 10 ], [ 5, 3, 8 ], [ 5, 2, 3 ], [ 2, 7, 3 ], [ 7, 10, 3 ], [ 7, 6, 10 ], [ 7, 11, 6 ], [ 11, 0, 6 ], [ 0, 1, 6 ], [ 6, 1, 10 ], [ 9, 0, 11 ], [ 9, 11, 2 ], [ 9, 2, 5 ], [ 7, 2, 11 ] ]; // iterate over isocahedron triangles for(var i = 0; i < 20; i++) subdivide( new CSG.Vector3D(vdata[tindices[i][0]]), new CSG.Vector3D(vdata[tindices[i][1]]), new CSG.Vector3D(vdata[tindices[i][2]]), addPolyCb, depth); } 

Para ejecutar esta secuencia de comandos, copie y pegue el código en tu editor de código favorito y guarde
el archivo con la extensión .jscad. Entonces simplemente arrastrar y soltar el archivo en el recangular
área en la esquina inferior izquierda de la ventana del navegador OpenJSCAD.

Artículos Relacionados

Lanzador de pelotas de Ping Pong controlado por Arduino

Lanzador de pelotas de Ping Pong controlado por Arduino

Hola todo el mundo!Se trata de un lanzador de pelotas de ping pong diseñado para ser controlado por un arduino.Utiliza un servo para dispensar las bolas y dos motores con las ruedas para dar velocidad y disparar.Todas las piezas pueden imprimirse uti
Flotar una pelota de ping-pong en la voluntad!

Flotar una pelota de ping-pong en la voluntad!

¡ Hola!Siempre he estado fascinado por las cosas que están controladas de forma inalámbrica por movimientos de la mano que es probablemente porqué tengo una Wii ahora que estoy pensando. Pero yo realmente no he conseguido a cualquier control de movim
5 cosas que hacer con una pelota de ping-pong

5 cosas que hacer con una pelota de ping-pong

por favor este Instructable y Sígueme para más cool guías paso a paso.Hecho por Manish KumarAsí que hoy habla 5 inusual que hacer con una pelota de ping-pong. Estas bolas de plástico muy barato y pueden ser utilizadas para los más más de usos. : P no
El Aplastador de pelota de Ping Pong

El Aplastador de pelota de Ping Pong

Hoy, tengo el gran placer de presentar a usted el Ping Pong Ball Mauler, el sólo automática, capacidad grande, lanzador de bolas de ping pong.  Este es el primero hágalo usted mismo proyecto, me he comprometido con mi nueva empresa, Outsmarting Techn
Pelota de ping-pong de 10.000 rpm

Pelota de ping-pong de 10.000 rpm

Usar Criógenos en demostraciones de química, y ejemplos rápidos de fácil seguros con cero limpiar siempre son bienvenidos. Que había encontrado sobre éste - la bola de ping-pong de giro - a través de YouTube. El video ha tenido más 2 millones de vist
Resplandor en el oscuro LED pelota de ping-pong

Resplandor en el oscuro LED pelota de ping-pong

Crear un resplandor en el oscurezca pelota de ping-pong LED con varios pasos.Paso 1: materiales Usted necesitará los siguientes materiales:Pelotita de Ping PongLED (5mm o 10 mm)Batería de 3VCintaPistola de pegamento de temperatura bajaMaquinilla de a
Convertir a pelotas de ping pong en Pokéballs!

Convertir a pelotas de ping pong en Pokéballs!

¿Quieres ser el mejor, como no se fue nunca? ¡ Consiga comenzado hoy haciendo su propio Pokéballs para jugar con!Paso 1: Necesidad de cosas U Aquí está lo que usted tendrá que hacer la Pokéballs.-Pelotas de ping pong blanca llano-marcador permanenteP
¿Hacer una bomba de humo de pelotas de Ping Pong

¿Hacer una bomba de humo de pelotas de Ping Pong

tienen cualquier pelotas de ping pong, ahí? Tengo una idea... ¿Qué tal hacer unas bombas de humo fáciles y efectivas de ellos? Materiales cotidianos de casa es todo lo que necesita. Muy útil para paint ball o aire suave acerca de los partidos, o simp
Pelota de ping-pong LED

Pelota de ping-pong LED

usted puede hacerlas rodar, captura de juego con ellos, o incluso jugar fetch con su perro con ellos. (Perros más grandes pueden ahogar, mi perro es muy pequeño y no se puede ahogar en él)VERSIÓN MÁS RECIENTE:)Paso 1: Reunir los materiales Necesita:S
La junta mayor de muchas pelotas de ping pong

La junta mayor de muchas pelotas de ping pong

esto ha entrado en las competiciones de corte LED y láser, por favor voten por mí :-DOK, vi el tablero 8 x 8, ahora Prepárate para la maravilla de 16 x 32 que está a punto de sobrevenir.No siento lo suficiente para la calidad del video, pero todavía
Pelota de ping-pong LED (mejorado)

Pelota de ping-pong LED (mejorado)

esto es básicamente el mismo diseño, pero hice más limpia y se ve mucho mejor!!Este es el viejo:Paso 1: herramientas Se necesita lo siguiente:1. el taladro2. brocas de perforación3. tijeras4. cintaPaso 2: materiales Se necesita lo siguiente:1. LED Th
¿Otro Consejo de muchas pelotas de ping pong

¿Otro Consejo de muchas pelotas de ping pong

lo que se obtiene cuando se agrega un Arduino, algunos registros de cambio, unos transistores y un puñado de LEDs a alguien con demasiado tiempo en sus manos?La respuesta simple es otro tablero de muchas pelotas de ping pong!Aunque esto no se ha comp
La Junta Directiva de muchas pelotas de ping pong

La Junta Directiva de muchas pelotas de ping pong

Ok,Proyecto de wilde lehttp://www.youtube.com/watch?v=m41S2sZquC4&feature=plcpEn primer lugar quisiera pedir disculpas por cualquier falta de claridad etc; Tengo 15 y por lo tanto no tengo ninguna habilidad .etcSe trata de una matriz de LEDTiene 64 L
KVG Vertical Micro cadena elevador - pelotas de Ping Pong

KVG Vertical Micro cadena elevador - pelotas de Ping Pong

ESTE UN PROYECTO REALIZADO POR MÍ Y PARSHANLista de piezas:conector rojo - 2Conector amarillo -69conector gris 3D - 55conector azul de entrada 3D - 19micro cadena - 145conector blanco - 12conector verde - 6conector naranja - 432 vías gris - 16micro c