(Quase) Gere cores automaticamente

No dia 8 de março, eu implementei o desenho automatizado de superfícies com splines - por que não escrever um artigo com cores.

Aconteceu algo como isto:



Haverá mais sob o corte, cuide do tráfego.

O algoritmo que faz curvas cúbicas foi descrito anteriormente . Aqui vamos tentar aplicá-lo para obter algo floral. O único problema é como selecionar os dados de entrada.
Os dados de entrada são um conjunto de pontos com coordenadas no espaço tridimensional e um conjunto de conexões entre eles, de modo que topologicamente esse design seja equivalente a uma caixa, como esta:



(no final deve ser assim :))



Para que as superfícies cúbicas quando tensionadas no núcleo pareçam uma flor , é necessário organizar os pontos simetricamente nos círculos circunscritos ao redor do centro da flor. Para resolver esse problema, foi aplicada uma variação da “busca pela primeira vez”.

Atribua a todos os pontos de peso. Primeiro, atribuímos os pesos 0 e 1 aos pontos extremos (dois pesos idênticos não devem estar próximos). Essas serão as bordas das “pétalas”, 0 - a distante, 1 - a mais próxima (“pétalas” entre aspas, porque não há divisão em pétalas como tal). Pesar mais atribuindo peso n + 2 a vizinhos não ponderados com peso n.

Caixa Ponderada:



Em seguida, selecione aleatoriamente a distância r do centro da flor para cada categoria de peso.
A lógica aqui é a seguinte: quanto maior o peso, mais próximo o ponto precisará ser movido para o centro e as desigualdades devem ser cumpridas:

r0 0>r2>r4>...>r2n;  r1 1>r3>...>r2n+1 1;  r0 0>r1 1


onde r é a distância do centro da flor aos pontos com o peso correspondente. Mesmo pesos são responsáveis ​​pela parte central da "pétala", pesos estranhos são responsáveis ​​pelas bordas da "pétala".

Para organizar pontos nos círculos (e não nas esferas), também precisamos selecionar aleatoriamente as coordenadas z de forma que z_n <r_n (se o centro da flor estiver na coordenada zero).



Na próxima etapa, precisamos conhecer os ângulos para a localização dos pontos no círculo:

ecomeue mn-parasobreeuehecomtĂ ssobre tsobrehepara com Ă secomsobrem n,tsobre Î±n=2â‹…Ď€/mn


e entĂŁo as coordenadas para o i-Ă©simo ponto de peso n, se for par:

xEu=rn2-zn2⋅cos(Euαn)


yEu=rn2-zn2⋅sEun(Euαn)


para Ă­mpar:

xEu=rn2-zn2⋅cos(Euαn+αn/2)


yEu=rn2-zn2⋅sEun(Euαn+αn/2)


Além disso, a ordem na qual nós levamos os pontos é importante - eles devem ser "vizinhos".



Após todas essas manipulações, é obtida uma estrutura em forma de estrela na qual as estrias podem ser puxadas.

(vista superior, isometria, splines)





Essas sépalas podem ser randomizadas para 100.500, mas para selecionar as adequadas, fazer várias flores, selecionar cores e parâmetros principais melhor manualmente, portanto, a geração é semi-automática.

(vista do software de montagem)













Parabéns pelo Dia Internacional da Mulher pela bela metade da harasociedade! Espero que você seja linda.

All Articles