Substrate
O algortimo chamado de substrate desenvolvido por Jared Tarbell permite a construção computacional de figuras artisticamente "válidas"; até com papel e caneta.
A versão mais simples deste algoritmo (ver figura seguinte) consiste em escolher um ponto no plano (ponto vermelho em cima à esquerda) e um ângulo, marcar um outro ponto (a verde), a uma distância arbitrária do primeiro, sobre a recta definida pelo par (ponto vermelho, ângulo). Escolher aleatóriamente um ponto (a azul) sobre esta recta e, finalmente, escolher aleatoriamente o ponto final, para a iteração seguinte sobre uma recta perpendicular à primeira e que passa no ponto azul.
Primeira iteração. |
O código em Octave que implementa o que acabou de ser descrito é:
function retval=substrule(x) rmax=100; r=rmax*rand; s=r*rand; y=x(1:2)+r*[cos(x(3)) sin(x(3))]; z=x(1:2)+s*[cos(x(3)) sin(x(3))]; alpha=x(3)+(-1)^(floor(10*rand))*pi/2; plot([x(1) y(1)], [x(2) y(2)],'k','linewidth',2) # plot(x(1),x(2),'ro') # plot(y(1),y(2),'go') retval=[z alpha]; endfunction;
As 12 figuras seguintes foram obtidas com 200 iterações sobre um ponto inicial. São, de uma certa maneira, passeios aleatórios sobre o plano.
12 |
Embora não tão sofisticadas como o substrato que motivou a sua construção, as figuras não deixam, na minha opinião, de ser artisticamente "válidas", permitindo ver para além do que lá está.
Deixo para mais tarde as considerações sobre a generalização da forma simples deste algoritmo assim como a implementação noutra linguagem de programação.
Palavras chave/keywords: substrate, art, matemáticaCriado/Created: NaN
Última actualização/Last updated: 10-10-2022 [14:26]
(c) Tiago Charters de Azevedo