¿Alguien sabe cómo crear un algoritmo capaz de hacer la figura como en la imagen, cuando se le da un conjunto de puntos específicos (matriz 3D)
algorithms
usuario88794
fuente
fuente
Respuestas:
Viniendo aquí después de la batalla, pero dado que aún no hay una respuesta aceptada y viendo que @Luke se niega a obtener el representante que se merece, aquí hay un resumen rápido del enlace que proporcionó.
Entonces, el algoritmo completo está disponible aquí:
http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html
La idea es arrancar su malla con un método simple que le da una esfera con 20 caras, y luego refinarla hasta que esté satisfecho.
Bootstrapping la forma
Empiezas con un icosaedro . Como dice el artículo de wikipedia, puede obtener los vértices dibujando tres rectángulos idénticos y ortogonales. Tienes 3 rectángulos con 4 esquinas cada uno -> 12 vértices.
Ilustración de Wikipedia:
Por ejemplo, los puntos del plan Z son (a, b son las longitudes de los rectángulos):
Ahora todavía tienes que encontrar las 20 caras. Esto se deja como ejercicio para el lector: p
Refinando la forma
Ahora que tiene una esfera básica, es posible que desee agregar polígonos. Lo haces con este algoritmo simple:
Para encontrar el punto medio, suponemos que deseamos crear la esfera unitaria (centro (0, 0, 0), radio 1).
En cada iteración, es posible que tengamos que reconstruir las caras, pero es bastante fácil. Cada cara se divide en cuatro:
fuente