Algoritmos que eu não sabia que queria conhecer

Desde que comecei a assistir os vídeos do Coding Train tenho conhecido diversos algoritmos que nunca havia ouvido anteriormente, mas que me chamaram bastante a atenção por serem divertidos de implementar. Em seus vídeos, Daniel Shiffman aplica a maioria destes algoritmos a um canvas, gerando imagens um tanto quanto interessantes.

Selecionei alguns dos algoritmos de seus vídeos para descrever rapidamente aqui.

Perlin Noise

Perlin Noise é um algoritmo utilizado para geração de ruídos. Ele se diferencia da geração de ruídos aleatórios pois busca fazer isso de forma mais suave, podendo ser utilizado para gerações de elementos visuais mais realista.

Alguns dos vídeos que apresentam exemplos desse algoritmo são o Flow Field e o Polar Loops

No background deste artigo faço uma implementação do Flow Field, que utiliza bastante o conceito do Perlin Noise para criar os caminhos das linhas.

Marching Squares

Um outro algoritmo divertido para aplicação em geração de campos procedurais é o Marching Squares. Este algoritmo é utilizado para criação de contornos em campos 2D, que podem ser bastante utilizados em criação de terrenos em jogos.

No vídeo do Daniel Shiffman, ele faz uma implementação do Marching Squares utilizando em conjunto com o perlin noise gerando imagens que você pode ver no gif abaixo.

Marching Squares

Ray Casting

Este já é um algoritmo um pouco mais conhecido e bastante utilizado na indústria de jogos. O objetivo dele é conseguir encontrar os pontos de colisão de raios saídos de um objeto. Este algoritmo é a base da exibição de iluminações em jogos 3D. No gif abaixo você pode ver um exemplo deste algoritmo em execução.

Ray Casting

Este algoritmo é explicado mais profundamente neste tutorial do Daniel Shiffman.

Conclusão

A diversão dos algoritmos que descrevi brevemente aqui é que todos podem ser utilizados para geração de imagens, podendo ser utilizado para criação de arte generativa, ou até mesmo no desenvolvimento de jogos.

Algumas recomendações legais caso você deseje continuar a estudar outros algoritmos são os tutoriais de simulação de fluidos e simulação de fogo.