Alguém sabe como criar um algoritmo capaz de fazer a figura exatamente como na figura, quando recebe um conjunto de pontos específicos (matriz 3D)
algorithms
user88794
fonte
fonte
Respostas:
Chegando aqui após a batalha, mas como ainda não há resposta aceita e como o @Luke se recusa a receber o representante que ele merece, aqui está um rápido resumo do link que ele forneceu.
Portanto, o algoritmo completo está disponível aqui:
http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html
A idéia é inicializar sua malha com um método simples que fornece uma esfera com 20 faces e refiná-la até que você esteja satisfeito.
Inicializando a forma
Você começa com um icosaedro . Como o artigo da Wikipedia diz, você pode obter os vértices desenhando três retângulos idênticos e ortogonais. Você tem 3 retângulos com 4 cantos cada -> 12 vértices.
Ilustração da Wikipedia:
Por exemplo, os pontos do plano Z são (a, b são os comprimentos do retângulo):
Agora você ainda precisa encontrar as 20 faces. Isso é deixado como um exercício para o leitor: p
Refinando a forma
Agora que você possui uma esfera básica, convém adicionar polígonos. Você faz isso com este algoritmo simples:
Para encontrar o ponto do meio, supomos que desejamos criar a esfera unitária (centro (0, 0, 0), raio 1).
Em cada iteração, podemos ter que reconstruir as faces, mas é bastante fácil. Cada face é dividida em quatro:
fonte