<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Arte - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Arte - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 15:27:13 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/tag/arte/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Uma introdução à arte gerativa: o 
 que é e como fazê-la ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Ali Spittel A arte gerativa (também conhecida como arte generativa) pode ser um tópico intimidante – parece que há muita matemática envolvida– sem contar que a arte é complicada em si mesma! Ela, porém, não precisa ser difícil – você pode criar algumas coisas muito legais sem ter ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/uma-introducao-a-arte-gerativa-o-que-e-e-como-faze-la/</link>
                <guid isPermaLink="false">64cfe27b802b5c066d519ea9</guid>
                
                    <category>
                        <![CDATA[ Arte ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Sun, 06 Aug 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/08/0_JPekOSiNoJpvFeDP.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/an-introduction-to-generative-art-what-it-is-and-how-you-make-it-b0b363b50a70/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">An introduction to Generative Art: what it is, and how you make it</a>
      </p><p>Escrito por: Ali Spittel</p><p>A arte gerativa (também conhecida como <em>arte generativa</em>) pode ser um tópico intimidante – parece que há muita matemática envolvida– sem contar que a arte é complicada em si mesma!</p><p>Ela, porém, não precisa ser difícil – você pode criar algumas coisas muito legais sem ter um diploma de matemática ou de arte. Este artigo vai detalhar o que é arte gerativa e como você pode começar a criar sua própria arte generativa.</p><h3 id="primeiro-o-que-a-code-art"><strong>Primeiro, o que é a <em>code art</em>?</strong></h3><p><em>Code art</em> é qualquer tipo de arte criada usando código. Existem infinitos exemplos no CodePen — um exemplo é a <a href="https://dev.to/aspittel/learning-css-through-creating-art-54c0" rel="noopener">arte em CSS</a>.</p><h3 id="o-que-a-arte-gerativa"><strong>O que é a arte gerativa?</strong></h3><p>Muitas vezes, a arte gerativa se inspira na arte moderna, especialmente na arte pop que faz uso pesado de padrões geométricos ordenados.</p><p>No entanto, é uma categoria muito ampla e rica de arte criada com código com uma característica central. A arte gerativa incorpora um sistema autogovernado ou autônomo de algum modo.</p><p>A aleatoriedade é um tipo de sistema autônomo. Ao incorporar o acaso em uma peça de arte de código, você obtém uma peça de arte diferente e completamente única cada vez que executa seu script, carrega sua página ou responde a alguma interação do usuário.</p><p>Existem, também, sistemas autônomos mais ordenados. Um exemplo é o fractal de Mandelbrot, derivado de uma equação enganosamente simples.</p><p>Também podemos integrar ambas as abordagens, misturando ordem e caos!</p><p>A obra torna-se uma colaboração entre o computador e o artista. Alguns aspectos do trabalho artístico são controlados pelo codificador, mas não todos. O artista controla tanto a aleatoriedade quanto a ordem na arte.</p><p>De certo modo, com um sistema autônomo, o artista abre mão do controle sobre sua arte – o computador faz isso por ele. Uma perspectiva de nuances diferentes surge quando um novo processo criativo é considerado.</p><p>O codificador-artista se envolve em um ciclo de <em>feedback </em>onde ele está constantemente ajustando um sistema para produzir resultados mais desejáveis e muitas vezes mais surpreendentes.</p><p>Esse processo abraça a experimentação e "acertos" do acaso de um modo que remodela o papel do artista. Como artistas gerativos, usamos os conceitos básicos de código como laços, fluxo de controle e funções especializadas. Em seguida, nós os misturamos a forças, muitas vezes imprevisíveis, para produzir resultados completamente únicos, diferentes de qualquer outra coisa existente.</p><h3 id="exemplos-de-arte-gerativa"><strong>Exemplos de arte gerativa</strong></h3><p><a href="http://www.galaxykate.com/apps/Prototypes/LTrees/" rel="noopener">As flores, de Kate Compton</a></p><p><a href="http://math.hws.edu/eck/js/edge-of-chaos/CA.html" rel="noopener">Cellular Automata and the Edge of Chaos</a></p><p>Arte gerativa animada multicolorida, de Phil Nash</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_wmermr" src="https://codepen.io/philnash/embed/preview/wmermr?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=wmermr" title="Animated generative art in multi-colour" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><p>Blobs impressionistas, de Murasaki Uma</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_BmOzMP" src="https://codepen.io/murasaki/embed/preview/BmOzMP?default-tabs=html%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=BmOzMP" title="Impressionists Blobs" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><p>Árvore gerada, de Miriam Nadler</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_JRvGOz" src="https://codepen.io/mknadler/embed/preview/JRvGOz?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=JRvGOz" title="Generated Tree" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><h3 id="o-que-vai-em-uma-obra-de-arte-gerativa"><strong>O que vai em uma obra de arte gerativa?</strong></h3><ul><li>A <strong>aleatoriedade</strong> é crucial para criar arte gerativa. A arte deve ser diferente cada vez que você executa o script de geração. A aleatoriedade, portanto, é, na maioria das vezes, grande parte disso.</li><li><strong><strong>Algorit</strong>mos</strong> — implementar um algoritmo visualmente, muitas vezes, pode gerar artes incríveis, como, por exemplo, a árvore binária acima.</li><li>Geometria — A maioria das artes gerativas incorpora formas. A matemática da aula de geometria do ensino médio pode ajudar a criar alguns efeitos muito legais.</li></ul><h3 id="como-abordar-uma-obra-de-arte-gerativa">Como abordar uma obra de arte gerativa?</h3><p>Existem duas estratégias principais para criar arte gerativa, embora a maioria seja um meio termo entre as duas estratégias.</p><p>A primeira é não ter resultados em mente e ver o que o computador gera enquanto você brinca.</p><p>A segunda é ter uma ideia muito finalizada de como você quer que a arte se pareça, e deixar que a aleatoriedade mude apenas um pouco o resultado.</p><h3 id="por-onde-come-ar"><strong>Por onde começar?</strong></h3><p>Se você conhece JavaScript, a biblioteca <a href="https://p5js.org/" rel="noopener">p5.js</a> é um ótimo lugar para se começar. Seu objetivo é "tornar a programação acessível para artistas, designers, educadores e iniciantes". É um wrapper da <a href="https://developer.mozilla.org/pt-BR/docs/Web/API/Canvas_API">Canvas API</a>, simplificando bastante a matemática envolvida. Ela tem como foco o desenho, mas você também pode fazer interações de som, vídeo ou de webcams com ele, se estiver interessado nessas formas de arte!</p><h4 id="uma-r-pida-introdu-o-ao-p5"><strong>Uma rápida introdução ao P5</strong></h4><p>Primeiramente, carregue a <a href="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.2/p5.js" rel="noopener">CDN do p5</a>. Depois, no arquivo do JavaScript, adicione duas funções que serão usadas em quase todos os scripts do p5: <code>setup</code> e <code>draw</code>. Esses nomes são necessários e o p5 os chamará.</p><p><code>setup</code> é chamada quando o programa é iniciado. Você, provavelmente, criará uma tela para desenhar nela usando a função <code>createCanvas</code>. Você também pode definir alguns padrões aqui. Essa função é chamada somente desta vez!</p><p><code>draw</code> é chamada após a chamada de <code>setup</code>, sendo executada constantemente, até que você chame <code>noLoop</code>, o que evitará que ela seja executada novamente. Você pode controlar quantas vezes <code>draw</code> é executada a cada segundo com a função <code>frameRate</code>.</p><p>Para a arte gerativa, eu geralmente coloco <code>noLoop</code> na função <code>setup</code>, o que faz com que <code>draw</code> seja executada apenas uma vez, não constantemente.</p><p><a href="https://codepen.io/aspittel/pen/EeJJBm" rel="noopener">Aqui temos um exemplo de template de início do p5 starter no CodePen</a>.</p><p>Como falamos tanto sobre a importância da aleatoriedade para a arte gerativa, outra função importante no p5 é a <code>random</code>. Ela funciona de modo semelhante à função <code>Math.random</code> do JavaScript, mas você pode definir um intervalo para os números para não precisar fazer tanta matemática para obter o número em um formato útil.</p><h4 id="linhas-no-p5"><strong>Linhas no p5</strong></h4><p>Você pode criar uma linha no p5.js assim:</p><pre><code>line(startX, startY, endX, endY)</code></pre><p>Então, você pode gerar algumas linhas aleatoriamente e criar uma obra de arte gerativa assim:</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_VGNOeG" src="https://codepen.io/aspittel/embed/preview/VGNOeG?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=VGNOeG" title="p5 Lines" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><p>Até mesmo exemplos simples de scripts podem gerar obras de arte muito legais!</p><h4 id="formas-no-p5"><strong>Formas no p5</strong></h4><p>Também é possível criar formas no p5 — como círculos, triângulos e quadrados.</p><p>Aqui temos exemplos de como criar formas com o p5:</p><pre><code>// círculo
ellipse(xCoordinate, yCoordinate, width, height);

// quadrado
rect(xCoordinate, yCoordinate, width, height);

// triângulo
triangle(xCoordinate1, yCoordinate1, x2, y2, x3, y3);</code></pre><p>Depois, podemos criar mais formas para gerar algo mais divertido!</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_mGYgWM" src="https://codepen.io/aspittel/embed/preview/mGYgWM?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=mGYgWM" title="Shapes" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><h4 id="movimento-no-p5"><strong>Movimento no p5</strong></h4><p>Podemos adicionar movimento aos nossos desenhos removendo a função <code>noLoop</code> da função <code>setup</code> — confira!</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_ZMNZKd" src="https://codepen.io/superbuggy/embed/preview/ZMNZKd?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=ZMNZKd" title="p5 Lines with Movement &amp; Color" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><h4 id="cores"><strong>Cores</strong></h4><p>Você também pode brincar com a cor com a arte generativa escolhendo cores aleatoriamente. Você pode fazer isso matematicamente por meio de valores RGB ou pode gerar uma paleta de cores com seu seletor de cores favorito (estamos usando <a href="https://www.colorbox.io/">este</a>).</p><p>Você pode definir a cor de preenchimento com a função <code>color</code>. Ela recebe muitos formatos diferentes, como nomes de cores, RGBAs e código hexadecimal.</p><p>Você também pode alterar a cor do contorno usando <code>stroke</code>. Também é possível remover essa estrutura de tópicos usando <code>noStroke</code> ou deixá-la com uma largura diferente, com <code>strokeWeight</code>.</p><h4 id="juntando-tudo"><strong>Juntando tudo</strong></h4><p>Uma vez que tenhamos todas essas peças no lugar, podemos combinar as técnicas para criar algumas coisas muito legais.</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_Pdvgda" src="https://codepen.io/aspittel/embed/preview/Pdvgda?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=Pdvgda" title="Colored shapes" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><h3 id="outra-estrat-gia-ajustar-tutoriais"><strong>Outra estratégia: ajustar tutoriais</strong></h3><p>Você também pode criar arte gerativa muito legal pegando o trabalho de outra pessoa e construindo a partir dele. Por exemplo, aqui está o resultado de um tutorial de <a href="https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw" rel="noopener">Dan Shiffman</a>:</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_NLmmbE" src="https://codepen.io/superbuggy/embed/preview/NLmmbE?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=NLmmbE" title="Smoke Version 1: Randomly Generated Smoke" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><p>Aqui estão dois ajustes dele usando efeitos diferentes na criação:</p><figure class="kg-card kg-embed-card"><iframe id="cp_embed_VGNNmW" src="https://codepen.io/superbuggy/embed/preview/VGNNmW?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=VGNNmW" title="Smoke Version 3: Gapped Circles in Time" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><figure class="kg-card kg-embed-card"><iframe id="cp_embed_JaVVOE" src="https://codepen.io/superbuggy/embed/preview/JaVVOE?default-tabs=js%2Cresult&amp;height=300&amp;host=https%3A%2F%2Fcodepen.io&amp;slug-hash=JaVVOE" title="Smoke Version 5: Breathing Circles in Time" scrolling="no" frameborder="0" height="300" allowtransparency="true" class="cp_embed_iframe" style="width: 100%; overflow: hidden;" loading="lazy"></iframe></figure><p><a href="https://codepen.io/collection/nMmoem/" rel="noopener">Aqui</a> você vê uma coleção do Codepen com muito mais!</p><p>Você pode seguir tutoriais, fazer o fork de projetos do CodePen ou de projetos do Glitch e criar algo novo e exclusivo. Não se esqueça, porém, de dar o crédito ao artista original.</p><h3 id="ficha-informativa"><strong>Ficha informativa</strong></h3><p>Aqui você tem uma ficha informativa com todas as funcionalidades do P5 que usamos neste tutorial.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/08/0_hFfffK_1TdH8MOJf.png" class="kg-image" alt="0_hFfffK_1TdH8MOJf" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/08/0_hFfffK_1TdH8MOJf.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/08/0_hFfffK_1TdH8MOJf.png 800w" sizes="(min-width: 720px) 720px" width="600" height="400" loading="lazy"></figure><h3 id="saiba-mais"><strong>Saiba mais</strong></h3><ul><li><a href="https://generativeartistry.com/" rel="noopener">Generative Artistry</a></li><li><a href="https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw" rel="noopener">Coding Train</a></li><li><a href="https://www.youtube.com/watch?v=4Se0_w0ISYk" rel="noopener">Talk, de Tim Holman</a></li></ul><h3 id="sobre-os-autores"><strong>Sobre os autores</strong></h3><p>Este artigo foi escrito em conjunto com <a href="https://twitter.com/1800thehive" rel="noopener">James Reichard</a>. Caso você crie sua própria arte, não se esqueça de nos enviar um Tweet sobre ela! (<a href="https://twitter.com/ASpittel" rel="noopener">Ali</a> e <a href="https://twitter.com/1800THEHIVE" rel="noopener">James</a>).</p><p><em>Publicação original em<em> <a href="https://dev.to/aspittel/intro-to-generative-art-2hi7" rel="noopener">dev.to</a>.</em></em></p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
