POTHIEDU Não Decore a Resposta. Entenda o Caminho

Bipiramide Trigonal

Bipiramide Trigonal

Construindo uma bipiramide trigonal no modeling 3D

A bipiramide trigonal é o que acontece quando você pega dois piramides de base triangular e cola elas pela base. Resultado: 5 vértices, 9 arestas, 6 faces triangulares. É o sólido de Johnson J12 quando todos os triângulos são equiláteros, mas na prática você raramente encontra ela assim no trabalho real. Quase todo mundo quer uma variação onde a altura dos pólos é diferente da altura do "equador", seja por estética ou por limitação de malha. A parte mais importante não é decorar a definição. É saber montar os vértices sem quebrar a normalização dos polígonos. A maioria dos erros que eu vejo em fóruns técnicos vem de gente que tenta construir isso com coordenadas numéricas sem fazer a conta antes, e no final acaba com uma face invertida ou um smoothing group bugado.

O que realmente é uma bipiramide trigonal

Vértice topo: V0 = (0, 0, h). Vértice fundo: V1 = (0, 0, -h). Três vértices equatoriais distribuídos em 120 graus no plano XY. Se o raio do círculo circunscrito for R, então os vértices ficam em R*(cos(), sin(), 0), com = 0°, 120° e 240°. Isso dá: V2 = (R, 0, 0), V3 = (-R/2, R*3/2, 0), V4 = (-R/2, -R*3/2, 0). As faces são seis triângulos conectando cada par de vértices equatoriais ao topo e ao fundo. A ordem de winding importa se você usa face culling. O sentido anti-horário visto de fora é: para o topo use (V2,V3,V0), (V3,V4,V0), (V4,V2,V0). Para o fundo inverte: (V2,V0,V3), (V3,V0,V4), (V4,V0,V2). Se você inverter só alguns, o renderer mostra faces pretas ou internal caras dependendo do software. Eu já passei duas horas caçando isso em um pipeline de renderização em 2022.

Montando no Blender

Abre o Blender, Delete tudo. Add > Mesh > Circle, define 3 vértices, raio 1, posiciona em Z = 0. Move ele para a vista superior com Numpad 7. Duplica esse círculo duas vezes. Uma versão sobe para Z = h, outra desce para Z = -h. Isso te dá cinco vértices no eixo e três no plano, mas ainda são objetos separados. Seleciona os três vértices do círculo equatorial e os dois polos. Entra em Edit Mode. Adiciona um Mesh > Polygon e vai conectando os pares. A ordem dos vértices nessa conexão define o winding, então fica atento. Se o shading ficar estranho depois, seleciona tudo e pressiona Shift+N para recalcular as normals automaticamente. O problema que eu encontrei na prática: o Blender cria faces com winding inconsistente quando você junta vértices de objetos diferentes que tinham orientações opostas. Minha solução foi selecionar a face, entrar em Edit Mode, ir em Mesh > Normals > Flip, e depois verificar com o overlay de face direction ativado. Você vê a seta verde apontando para fora quando o winding está correto. Leva uns dois minutos para ajustar o que levaria vinte se você tentasse adivinhar.

Trigonal bipyramidal molecular geometry - Wikipedia
Trigonal bipyramidal molecular geometry - Wikipedia

Gerando a bipiramide trigonal programaticamente

Se você quer gerar isso via código, seja em Python, GLSL, ou qualquer outra linguagem, a conta é simples. Use a forma paramétrica abaixo: Vértice topo: (0, 0, height) Vértice fundo: (0, 0, -height)

Vértices equatoriais: (radius * cos(angle), radius * sin(angle), 0) para angle em {0, 2/3, 4/3}. Faces: liste os triângulos conforme o winding acima. Exporte como OBJ, STL, ou PLY dependendo do que seu pipeline precisa. Para exportação STL, verifique se o arquivo não tem faces degeneradas — isso acontece quando h = 0 ou quando radius = 0, e alguns slicers de impressão 3D travam com isso. Eu já vi uma impressora parada na primeira camada porque o STL tinha uma face com área zero.

Pegadinhas que ninguém conta

Primeiro: a bipiramide trigonal é convexa. Isso parece óbvio, mas é importante porque muitas pessoas tentam usar ferramentas de boolean que assumem malha não-convexa e acabam gerando artefatos desnecessários. Se você precisa subdividir as faces, use um algoritmo de loop subdivision ou simplesmente refina dividindo cada triângulo ao meio recursivamente. Não tente misturar bipiramide com operações de boolean em malhas complexas — o resultado costuma ter faces colapsadas ou normais inconsistentes. Segundo: se você está fazendo simulação física ou renderização ray-tracing, a bipiramide trigonal com todos os triângulos equiláteros e altura calculada para igualar arestas é um caso especial. A altura correta para arestas iguais a R é h = R * (2/3). Qualquer desvio disso cria faces que ainda são triângulos, mas não são mais equiláteras. Isso importa se você está fazendo mapping UV uniforme ou se está calculando áreas de face para integração numérica. Eu perdi uma noite inteira porque meu shader de displacement usava área de face normalizada e os valores entravam incorretos quando a altura era diferente do padrão.

Trigonal Bipyramidal Bond Angle What Are The Three Bond Angles In The
Trigonal Bipyramidal Bond Angle What Are The Three Bond Angles In The

Download e arquivos prontos

Não tenho um link de download confiável aqui, mas você pode gerar a bipiramide trigonal em segundos com um script Python simples. Se quiser, posso adaptar o script para o formato que você precisa — OBJ, STL, PLY, ou JSON com as coordenadas dos vértices e índices das faces. Só dizer qual formato e qual software você vai usar. A versão mais rápida é exportar direto do Blender como STL para impressão 3D ou como OBJ com normals para motores de jogo. Se o objetivo for CAD, prefira STEP ou IGES para manter a precisão matemática sem perder informação de curvatura. A bipiramide trigonal em si não tem superfícies curvas, então a diferença entre formatos é mais sobre como o software lida com os vértices do que com a geometria em si.

Quando não usar bipiramide trigonal

Se você precisa de uma malha onde todas as faces sejam triângulos equiláteros iguais e quer um sólido altamente simétrico para simulação de tensão, considere o octaedro regular em vez. A bipiramide trigonal com arestas iguais já é um octaedro, mas se você variar a altura, perde a equivalência das faces e a simetria cai para o grupo C3v. Em simulações estruturais, isso pode gerar concentrações de tensão nos vértices polares que não existem no caso regular. Outro caso: se você está otimizando para rendering em tempo real e a bipiramide trigonal é apenas um componente de uma malha maior, considere converter as faces para quads se o motor suportar. A bipiramide trigonal pura só tem triângulos, e em alguns pipelines de tesselação isso gera overhead desnecessário. A conversão para quads é possível agrupando pares de triângulos adjacentes, desde que o winding permaneça consistente. Se precisar do script ou da malha pronta, é só falar que eu monto.