{"id":40734,"date":"2025-07-26T13:35:44","date_gmt":"2025-07-26T16:35:44","guid":{"rendered":"https:\/\/portifolioos-prontos.com\/?post_type=product&#038;p=40734"},"modified":"2025-08-03T18:41:28","modified_gmt":"2025-08-03T21:41:28","slug":"aula-pratica-computacao-grafica-e-processamento-de-imagens","status":"publish","type":"product","link":"https:\/\/portifolioos-prontos.com\/index.php\/product\/aula-pratica-computacao-grafica-e-processamento-de-imagens\/","title":{"rendered":"Aula Pr\u00e1tica &#8211; Computa\u00e7\u00e3o Gr\u00e1fica e Processamento de Imagens"},"content":{"rendered":"<h3>Portf\u00f3lio Relat\u00f3rio de Aula Pr\u00e1tica &#8211; Computa\u00e7\u00e3o Gr\u00e1fica e Processamento de Imagens<\/h3>\n<p class=\"Estilo1\">ROTEIRO DE AULA PR\u00c1TICA<\/p>\n<p class=\"Estilo1\">NOME DA DISCIPLINA: COMPUTA\u00c7\u00c3O GR\u00c1FICA E PROCESSAMENTO DE IMAGENS<\/p>\n<p class=\"Estilo1\">Unidade: 1 &#8211; INTRODU\u00c7\u00c3O \u00c0 COMPUTA\u00c7\u00c3O GR\u00c1FICA<\/p>\n<p class=\"Estilo1\">Se\u00e7\u00e3o: 3 &#8211; REPRESENTA\u00c7\u00d5ES DA IMAGEM<\/p>\n<p class=\"Estilo1\">OBJETIVOS<\/p>\n<p class=\"Estilo1\">Defini\u00e7\u00e3o dos objetivos da aula pr\u00e1tica:<\/p>\n<p class=\"Estilo1\">Os objetivos desta aula pr\u00e1tica s\u00e3o:<\/p>\n<p class=\"Estilo1\">1. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa<\/p>\n<p class=\"Estilo1\">de cria\u00e7\u00e3o e manipula\u00e7\u00e3o de imagem vetorial.<\/p>\n<p class=\"Estilo1\">2. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa<\/p>\n<p class=\"Estilo1\">de cria\u00e7\u00e3o e manipula\u00e7\u00e3o de imagem matricial.<\/p>\n<p class=\"Estilo1\">3. Implementar a convers\u00e3o de imagens vetoriais com retas e c\u00edrculos para imagem<\/p>\n<p class=\"Estilo1\">bitmap.<\/p>\n<p class=\"Estilo1\">INFRAESTRUTURA<\/p>\n<p class=\"Estilo1\">Instala\u00e7\u00f5es \u2013 Materiais de consumo \u2013 Equipamentos:<\/p>\n<p class=\"Estilo1\">LABORAT\u00d3RIO DE INFORM\u00c1TICA<\/p>\n<p class=\"Estilo1\">EQUIPAMENTOS:<\/p>\n<p class=\"Estilo1\">\u2022 Desktop Engenharia Positivo Master D3400<\/p>\n<p class=\"Estilo1\">~ 1 por aluno ou dupla<\/p>\n<p class=\"Estilo1\">SOLU\u00c7\u00c3O DIGITAL<\/p>\n<p class=\"Estilo1\">\u2022 PILLOW 5.2+ (Biblioteca)<\/p>\n<p class=\"Estilo1\">Pillow 5.2+ &#8211; \u00e9 uma biblioteca de processamento de imagens para Python, que permite a abertura,<\/p>\n<p class=\"Estilo1\">manipula\u00e7\u00e3o e salvamento de imagens em v\u00e1rios formatos.<\/p>\n<p class=\"Estilo1\">\u2022 PYCAIRO 1.17+ (Biblioteca)<\/p>\n<p class=\"Estilo1\">Pycairo 1.17+ &#8211; \u00e9 uma biblioteca de gr\u00e1ficos vetoriais 2D para Python, que permite a cria\u00e7\u00e3o de<\/p>\n<p class=\"Estilo1\">gr\u00e1ficos personalizados de alta qualidade.<\/p>\n<p class=\"Estilo1\">\u2022 IDLE(PYTHON) (Software)<\/p>\n<p class=\"Estilo1\">IDLE(Python): \u00c9 um ambiente de desenvolvimento integrado (IDE) para a linguagem de<\/p>\n<p class=\"Estilo1\">programa\u00e7\u00e3o Python. Ele \u00e9 usado principalmente para desenvolvimento de aplicativos em Python<\/p>\n<p class=\"Estilo1\">e inclui recursos como realce de sintaxe, depura\u00e7\u00e3o, controle de vers\u00e3o e muito mais.<\/p>\n<p class=\"Estilo1\">EQUIPAMENTO DE PROTE\u00c7\u00c3O INDIVIDUAL (EPI)<\/p>\n<p class=\"Estilo1\">N\u00e3o se aplica.<\/p>\n<p class=\"Estilo1\">PROCEDIMENTO\/ATIVIDADE n\u00ba 1 (F\u00edsico)<\/p>\n<p class=\"Estilo1\">ATIVIDADE PROPOSTA:<\/p>\n<p class=\"Estilo1\">Cria\u00e7\u00e3o de imagem vetorial com retas e c\u00edrculos e transforma\u00e7\u00e3o em imagem matricial.<\/p>\n<p class=\"Estilo1\">PROCEDIMENTOS PARA A REALIZA\u00c7\u00c3O DA ATIVIDADE:<\/p>\n<p class=\"Estilo1\">Para a execu\u00e7\u00e3o desta atividade, voc\u00ea dever\u00e1 criar e executar um primeiro programa em<\/p>\n<p class=\"Estilo1\">Python. O primeiro programa serve apenas para conhecer o ambiente de desenvolvimento,<\/p>\n<p class=\"Estilo1\">pois apenas imprime textos na tela.<\/p>\n<p class=\"Estilo1\">Em seguida voc\u00ea dever\u00e1 implementar tr\u00eas passos:<\/p>\n<p class=\"Estilo1\">1) criar uma imagem vetorial com dois segmentos de reta e um c\u00edrculo,<\/p>\n<p class=\"Estilo1\">2) desenhar um c\u00edrculo em formato matricial<\/p>\n<p class=\"Estilo1\">3) desenhar segmentos de reta em formato matricial. Esses tr\u00eas passos dever\u00e3o ser<\/p>\n<p class=\"Estilo1\">implementados nos procedimentos passo1(), passo2() e passo3(), respectivamente, junto com<\/p>\n<p class=\"Estilo1\">fun\u00e7\u00f5es auxiliares sugeridas ao longo da atividade.<\/p>\n<p class=\"Estilo1\">Crie e execute seu primeiro programa em Python<\/p>\n<p class=\"Estilo1\">Para criar seu primeiro programa a partir de um template, fa\u00e7a:<\/p>\n<p class=\"Estilo1\">1. Abra o IDLE (Python Shell).<\/p>\n<p class=\"Estilo1\">2. V\u00e1 em File-&gt;Open e abra o arquivo cgpi1tmp.py.<\/p>\n<p class=\"Estilo1\">3. Altere o cabe\u00e7alho do arquivo, preenchendo devidamente seu nome e n\u00famero de<\/p>\n<p class=\"Estilo1\">matr\u00edcula (colocar todos os nomes e n\u00fameros de matr\u00edcula se o trabalho for realizado<\/p>\n<p class=\"Estilo1\">em grupo).<\/p>\n<p class=\"Estilo1\">4. Salve o arquivo com o nome cgpi1.py. Siga o padr\u00e3o de nomenclatura! O nome do arquivo em<\/p>\n<p class=\"Estilo1\">Python \u00e9 o nome do m\u00f3dulo e n\u00e3o deve conter acentos, espa\u00e7os ou<\/p>\n<p class=\"Estilo1\">caracteres especiais.<\/p>\n<p class=\"Estilo1\">5. Execute o programa clicando em Run-&gt;Run Module e veja o que \u00e9 impresso na tela<\/p>\n<p class=\"Estilo1\">do Python Shell.<\/p>\n<p class=\"Estilo1\">6. No shell, digite \u2018import cgpi1.py\u2019 e &lt;ENTER&gt; e veja que o resultado deve ser o mesmo.<\/p>\n<p class=\"Estilo1\">A indenta\u00e7\u00e3o \u00e9 essencial na linguagem Python, pois \u00e9 a indenta\u00e7\u00e3o que define os escopos.<\/p>\n<p class=\"Estilo1\">Quando se faz um \u2018import cgpi1.py\u2019 o m\u00f3dulo cgpi1 (definido no arquivo cgpi1.py) \u00e9 carregado<\/p>\n<p class=\"Estilo1\">e todo o c\u00f3digo sem indenta\u00e7\u00e3o (a partir da linha print(&#8216;In\u00edcio da Pr\u00e1tica&#8217;)) \u00e9 executado como<\/p>\n<p class=\"Estilo1\">um script.<\/p>\n<p class=\"Estilo1\">Crie uma imagem vetorial<\/p>\n<p class=\"Estilo1\">Para criar uma imagem vetorial voc\u00ea dever\u00e1 importar m\u00f3dulos no in\u00edcio do arquivo, criar a<\/p>\n<p class=\"Estilo1\">fun\u00e7\u00e3o criaImagemVetorial() e preencher o procedimento passo1(). Fa\u00e7a:<\/p>\n<p class=\"Estilo1\">1. Importe o cairo, que ser\u00e1 utilizado em todos os passos a seguir.<\/p>\n<p class=\"Estilo1\">2. Crie a fun\u00e7\u00e3o criaImagemVetorial() que:<\/p>\n<p class=\"Estilo1\">a. inicializa a vari\u00e1vel v como uma imagem vetorial do tipo SVG<\/p>\n<p class=\"Estilo1\">(cairo.SVGSurface) a ser escrita no arquivo cgpi1.svg;<\/p>\n<p class=\"Estilo1\">b. adicione a v um segmento de reta preto, partindo da coordenada (0.2,0.3)<\/p>\n<p class=\"Estilo1\">at\u00e9 a coordenada (0.8,0.7);<\/p>\n<p class=\"Estilo1\">c. adiciona a v um segmento de reta cinza escuro, partindo da coordenada<\/p>\n<p class=\"Estilo1\">(0.8,0.3) at\u00e9 a coordenada (0.2,0.7);<\/p>\n<p class=\"Estilo1\">d. adicione a v um c\u00edrculo cinza claro, com centro na coordenada (0.5,0.5) e raio<\/p>\n<p class=\"Estilo1\">0.3;<\/p>\n<p class=\"Estilo1\">e. salva a imagem cgpi1.svg, chamando pela \u00faltima vez context.stroke().<\/p>\n<p class=\"Estilo1\">f. retorna v.<\/p>\n<p class=\"Estilo1\">3. Preencha o procedimento passo1() que:<\/p>\n<p class=\"Estilo1\">a. chama a fun\u00e7\u00e3o criaImagemVetorial();<\/p>\n<p class=\"Estilo1\">b. salva a imagem criada em formato PNG no arquivo cgpi1.png.<\/p>\n<p class=\"Estilo1\">4. Abra o arquivo cgpi1.svg em um editor de texto. Trata-se de um arquivo XML<\/p>\n<p class=\"Estilo1\">descritor de imagem.<\/p>\n<p class=\"Estilo1\">5. Visualize a imagem cgpi1.svg em um browser. O browser desenha a imagem descrita<\/p>\n<p class=\"Estilo1\">no arquivo SVG e exibe.<\/p>\n<p class=\"Estilo1\">6. Visualize a imagem cgpi1.png em um visualizador de imagens qualquer. A imagem<\/p>\n<p class=\"Estilo1\">PNG \u00e9 criada com um fundo transparente, mas alguns visualizadores de imagens ir\u00e3o<\/p>\n<p class=\"Estilo1\">colocar um fundo branco.<\/p>\n<p class=\"Estilo1\">A imagem resultante dever\u00e1 ser como a da Figura 1.<\/p>\n<p class=\"Estilo1\">Figura 1 \u2013 Resultado esperado para o Passo 1.<\/p>\n<p class=\"Estilo1\">Fonte: o Autor.<\/p>\n<p class=\"Estilo1\">Note na Figura 1 que o segmento de reta cinza escuro passa por cima do segmento de reta<\/p>\n<p class=\"Estilo1\">preto, portanto no ponto de cruzamento a cor \u00e9 cinza escuro. Note tamb\u00e9m que o c\u00edrculo cinza<\/p>\n<p class=\"Estilo1\">claro passa por cima dos dois segmentos de reta e, por isso, os pontos de cruzamento s\u00e3o na<\/p>\n<p class=\"Estilo1\">cor cinza claro. Isto se deve \u00e0 ordem em que os elementos s\u00e3o adicionados \u00e0 imagem.<\/p>\n<p class=\"Estilo1\">Desenhe um c\u00edrculo em formato matricial<\/p>\n<p class=\"Estilo1\">Para desenhar um c\u00edrculo em formato matricial, voc\u00ea dever\u00e1 importar m\u00f3dulos no in\u00edcio do<\/p>\n<p class=\"Estilo1\">arquivo, criar uma nova fun\u00e7\u00e3o e preencher o procedimento passo2().<\/p>\n<p class=\"Estilo1\">Fa\u00e7a:<\/p>\n<p class=\"Estilo1\">1. Importe o numpy.<\/p>\n<p class=\"Estilo1\">2. No procedimento passo2(), crie a vari\u00e1vel f como uma imagem matricial<\/p>\n<p class=\"Estilo1\">(NumPyarray) de 201&#215;201 pixels em n\u00edveis de cinza, mas com todos os valores em<\/p>\n<p class=\"Estilo1\">branco.<\/p>\n<p class=\"Estilo1\">3. Implemente a fun\u00e7\u00e3o <a href=\"http:\/\/portfolio-pronto.com\">desenhaCirculo<\/a>(f,c,r,g), que desenha sobre a imagem em n\u00edveis<\/p>\n<p class=\"Estilo1\">de cinza f, passada como par\u00e2metro, um c\u00edrculo de n\u00edvel de cinza g, com centro na<\/p>\n<p class=\"Estilo1\">coordenada c e raio r, onde f \u00e9 um NumPy array, c \u00e9 uma coordenada (xc,yc), xc e yc<\/p>\n<p class=\"Estilo1\">inteiros, e r \u00e9 o raio em pixels, um n\u00famero inteiro. Trata-se da implementa\u00e7\u00e3o do<\/p>\n<p class=\"Estilo1\">algoritmo de desenho de c\u00edrculo apresentado nesta se\u00e7\u00e3o.<\/p>\n<p class=\"Estilo1\">4. Novamente no procedimento passo2(), desenhe um c\u00edrculo cinza claro (g=230) de<\/p>\n<p class=\"Estilo1\">centro (100,100) e raio 60 pixels sobre a imagem f, chamando a fun\u00e7\u00e3o<\/p>\n<p class=\"Estilo1\">desenhaCirculo(f,(100,100),60,230) .<\/p>\n<p class=\"Estilo1\">5. Salve a imagem em formato PNG e abra em um visualizador de imagens.<\/p>\n<p class=\"Estilo1\">Voc\u00ea dever\u00e1 ver uma imagem como a da Figura 2.<\/p>\n<p class=\"Estilo1\">Figura 2 \u2013 Resultado esperado para o Passo 2.<\/p>\n<p class=\"Estilo1\">Fonte: o Autor.<\/p>\n<p class=\"Estilo1\">Desenhe retas e converta a imagem vetorial para matricial<\/p>\n<p class=\"Estilo1\">Para executar esta atividade, voc\u00ea dever\u00e1 criar uma nova fun\u00e7\u00e3o e preencher o procedimento<\/p>\n<p class=\"Estilo1\">passo3(). Considere v a imagem vetorial criada pela fun\u00e7\u00e3o criaImagemVetorial no Passo 1.<\/p>\n<p class=\"Estilo1\">Fa\u00e7a:<\/p>\n<p class=\"Estilo1\">1. Implemente a fun\u00e7\u00e3o desenhaReta(f,p,q,g), que desenha sobre a imagem f um<\/p>\n<p class=\"Estilo1\">segmento de reta de n\u00edvel de cinza g que se inicia no ponto p e termina no ponto q,<\/p>\n<p class=\"Estilo1\">ambos de coordenadas inteiras. Trata-se da implementa\u00e7\u00e3o do algoritmo de desenho<\/p>\n<p class=\"Estilo1\">de reta apresentado nesta se\u00e7\u00e3o.<\/p>\n<p class=\"Estilo1\">2. Crie a vari\u00e1vel f como uma imagem matricial (NumPyarray)de201x201pixels em<\/p>\n<p class=\"Estilo1\">n\u00edveis de cinza.<\/p>\n<p class=\"Estilo1\">3. Desenhe sobre f o primeiro segmento de reta de v (preto). Para converter as<\/p>\n<p class=\"Estilo1\">coordenadas reais de v para as coordenadas inteiras de f, simplesmente multiplique a<\/p>\n<p class=\"Estilo1\">coordenada real pela largura (coordenada x) ou altura (coordenada y) de f e converta<\/p>\n<p class=\"Estilo1\">o resultado para inteiro. Exemplo: o ponto (0.2,0.7) ser\u00e1 (round(0.2*201),<\/p>\n<p class=\"Estilo1\">round(0.7*201)), ou seja (40,141).<\/p>\n<p class=\"Estilo1\">4. Desenhe sobre f o segundo segmento de reta de v (cinza escuro), usando a mesma<\/p>\n<p class=\"Estilo1\">convers\u00e3o do passo anterior.<\/p>\n<p class=\"Estilo1\">5. Desenhe sobre f o c\u00edrculo de v (cinza claro), usando o mesmo racioc\u00ednio dos passos<\/p>\n<p class=\"Estilo1\">anteriores. Para converter o raio do c\u00edrculo para inteiro fa\u00e7a o mesmo que na convers\u00e3o<\/p>\n<p class=\"Estilo1\">de coordenadas.<\/p>\n<p class=\"Estilo1\">Salve a imagem f em formato PNG e abra em um visualizador de imagens. Voc\u00ea dever\u00e1 ver algo<\/p>\n<p class=\"Estilo1\">similar \u00e0 Figura 3, que \u00e9 uma imagem parecida com a imagem obtida no Passo 1. A diferen\u00e7a<\/p>\n<p class=\"Estilo1\">desta imagem para a imagem obtida no Passo 1 \u00e9 apenas a espessura das linhas.<\/p>\n<p class=\"Estilo1\">Figura 3 \u2013 Resultado esperado para o Passo 3.<\/p>\n<p class=\"Estilo1\">Fonte: o Autor.<\/p>\n<p class=\"Estilo1\">CHECKLIST:<\/p>\n<p class=\"Estilo1\">1. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa<\/p>\n<p class=\"Estilo1\">de cria\u00e7\u00e3o e manipula\u00e7\u00e3o de imagem vetorial.<\/p>\n<p class=\"Estilo1\">2. Aplicar os conhecimentos da unidade no desenvolvimento de um primeiro programa<\/p>\n<p class=\"Estilo1\">de cria\u00e7\u00e3o e manipula\u00e7\u00e3o de imagem matricial.<\/p>\n<p class=\"Estilo1\">3. Implementar a convers\u00e3o de imagens vetoriais com retas e c\u00edrculos para imagem<\/p>\n<p class=\"Estilo1\">bitmap.<\/p>\n<p class=\"Estilo1\">PROCEDIMENTO\/ATIVIDADE n\u00ba 2 (Digital)<\/p>\n<p class=\"Estilo1\">ATIVIDADE PROPOSTA:<\/p>\n<p class=\"Estilo1\">Cria\u00e7\u00e3o de imagem vetorial com retas e c\u00edrculos e transforma\u00e7\u00e3o em imagem matricial.<\/p>\n<p class=\"Estilo1\">PROCEDIMENTOS PARA A REALIZA\u00c7\u00c3O DA ATIVIDADE:<\/p>\n<p class=\"Estilo1\">Para a execu\u00e7\u00e3o desta atividade, voc\u00ea dever\u00e1 criar e executar um primeiro programa em<\/p>\n<p class=\"Estilo1\">Python. O primeiro programa serve apenas para conhecer o ambiente de desenvolvimento,<\/p>\n<p class=\"Estilo1\">pois apenas imprime textos na tela.<\/p>\n<p class=\"Estilo1\">Em seguida voc\u00ea dever\u00e1 implementar tr\u00eas passos: 1) criar uma imagem vetorial com dois<\/p>\n<p class=\"Estilo1\">segmentos de reta e um c\u00edrculo, 2) desenhar um c\u00edrculo em formato matricial e 3) desenhar<\/p>\n<p class=\"Estilo1\">segmentos de reta em formato matricial. Esses tr\u00eas passos dever\u00e3o ser implementados nos<\/p>\n<p class=\"Estilo1\">procedimentos passo1(), passo2() e passo3(), respectivamente, junto com fun\u00e7\u00f5es auxiliares<\/p>\n<p class=\"Estilo1\">sugeridas ao longo da atividade.<\/p>\n<p class=\"Estilo1\">Crie e execute seu primeiro programa em Python<\/p>\n<p class=\"Estilo1\">Para criar seu primeiro programa a partir de um template, fa\u00e7a:<\/p>\n<p class=\"Estilo1\">1. Abra o IDLE (Python Shell).<\/p>\n<p class=\"Estilo1\">2. V\u00e1 em File-&gt;Open e abra o arquivo cgpi1tmp.py.<\/p>\n<p class=\"Estilo1\">3. Altere o cabe\u00e7alho do arquivo, preenchendo devidamente seu nome e n\u00famero de<\/p>\n<p class=\"Estilo1\">matr\u00edcula (colocar todos os nomes e n\u00fameros de matr\u00edcula se o trabalho for realizado<\/p>\n<p class=\"Estilo1\">em grupo).<\/p>\n<p class=\"Estilo1\">4. Salve o arquivo com o nome cgpi1.py. Siga o padr\u00e3o de nomenclatura! O nome do<\/p>\n<p class=\"Estilo1\">arquivo em Python \u00e9 o nome do m\u00f3dulo e n\u00e3o deve conter acentos, espa\u00e7os ou<\/p>\n<p class=\"Estilo1\">caracteres especiais.<\/p>\n<p class=\"Estilo1\">5. Execute o programa clicando em Run-&gt;Run Module e veja o que \u00e9 impresso na tela<\/p>\n<p class=\"Estilo1\">do Python Shell.<\/p>\n<p class=\"Estilo1\">6. No shell, digite \u2018import cgpi1.py\u2019 e &lt;ENTER&gt; e veja que o resultado deve ser o mesmo.<\/p>\n<p class=\"Estilo1\">A indenta\u00e7\u00e3o \u00e9 essencial na linguagem Python, pois \u00e9 a indenta\u00e7\u00e3o que define os escopos.<\/p>\n<p class=\"Estilo1\">Quando se faz um \u2018import cgpi1.py\u2019 o m\u00f3dulo cgpi1 (definido no arquivo cgpi1.py) \u00e9 carregado<\/p>\n<p class=\"Estilo1\">e todo o c\u00f3digo sem indenta\u00e7\u00e3o (a partir da linha print(&#8216;In\u00edcio da Pr\u00e1tica&#8217;)) \u00e9 executado como<\/p>\n<p class=\"Estilo1\">um script.<\/p>\n<p class=\"Estilo1\">Crie uma imagem vetorial<\/p>\n<p class=\"Estilo1\">Para criar uma imagem vetorial voc\u00ea dever\u00e1 importar m\u00f3dulos no in\u00edcio do arquivo, criar a<\/p>\n<p class=\"Estilo1\">fun\u00e7\u00e3o criaImagemVetorial() e preencher o procedimento passo1(). Fa\u00e7a:<\/p>\n<p class=\"Estilo1\">1. Importe o cairo, que ser\u00e1 utilizado em todos os passos a seguir.<\/p>\n<p class=\"Estilo1\">2. Crie a fun\u00e7\u00e3o criaImagemVetorial() que:<\/p>\n<p class=\"Estilo1\">a. inicializa a vari\u00e1vel v como uma imagem vetorial do tipo SVG<\/p>\n<p class=\"Estilo1\">(cairo.SVGSurface) a ser escrita no arquivo cgpi1.svg;<\/p>\n<p class=\"Estilo1\">b. adicione a v um segmento de reta preto, partindo da coordenada (0.2,0.3)<\/p>\n<p class=\"Estilo1\">at\u00e9 a coordenada (0.8,0.7);<\/p>\n<p class=\"Estilo1\">c. adiciona a v um segmento de reta cinza escuro, partindo da coordenada<\/p>\n<p class=\"Estilo1\">(0.8,0.3) at\u00e9 a coordenada (0.2,0.7);<\/p>\n<p class=\"Estilo1\">d. adicione a v um c\u00edrculo cinza claro, com centro na coordenada (0.5,0.5) e raio<\/p>\n<p class=\"Estilo1\">0.3;<\/p>\n<p class=\"Estilo1\">e. salva a imagem cgpi1.svg, chamando pela \u00faltima vez context.stroke().<\/p>\n<p class=\"Estilo1\">f. retorna v.<\/p>\n<p class=\"Estilo1\">3. Preencha o procedimento passo1() que:<\/p>\n<p class=\"Estilo1\">a. chama a fun\u00e7\u00e3o criaImagemVetorial();<\/p>\n<p class=\"Estilo1\">b. salva a imagem criada em formato PNG no arquivo cgpi1.png.<\/p>\n<p class=\"Estilo1\">4. Abra o arquivo cgpi1.svg em um editor de texto. Trata-se de um arquivo XML<\/p>\n<p class=\"Estilo1\">descritor de imagem.<\/p>\n<p class=\"Estilo1\">5. Visualize a imagem cgpi1.svg em um browser. O browser desenha a imagem descrita<\/p>\n<p class=\"Estilo1\">no arquivo SVG e exibe.<\/p>\n<p class=\"Estilo1\">6. Visualize a imagem cgpi1.png em um visualizador de imagens qualquer. A imagem<\/p>\n<p class=\"Estilo1\">PNG \u00e9 criada com um fundo transparente, mas alguns visualizadores de imagens ir\u00e3o<\/p>\n<p class=\"Estilo1\">colocar um fundo branco.<\/p>\n<p class=\"Estilo1\">A imagem resultante dever\u00e1 ser como a da Figura 1.<\/p>\n<p class=\"Estilo1\">Figura 1 \u2013 Resultado esperado para o Passo 1.<\/p>\n<p class=\"Estilo1\">Fonte: o Autor.<\/p>\n<p class=\"Estilo1\">Note na Figura 1 que o segmento de reta cinza escuro passa por cima do segmento de reta<\/p>\n<p class=\"Estilo1\">preto, portanto no ponto de cruzamento a cor \u00e9 cinza escuro. Note tamb\u00e9m que o c\u00edrculo cinza<\/p>\n<p class=\"Estilo1\">claro passa por cima dos dois segmentos de reta e, por isso, os pontos de cruzamento s\u00e3o na<\/p>\n<p class=\"Estilo1\">cor cinza claro. Isto se deve \u00e0 ordem em que os elementos s\u00e3o adicionados \u00e0 imagem.<\/p>\n<p class=\"Estilo1\">Desenhe um c\u00edrculo em formato matricial<\/p>\n<div class=\"add-to-wishlist\">\n<div class=\"elementor-toggle-item\">\n<div class=\"elementor-toggle-item\">\n<div class=\"elementor-toggle-item\">\n<p id=\"elementor-tab-title-1941\" class=\"elementor-tab-title elementor-active\" tabindex=\"0\" role=\"tab\" data-tab=\"1\" aria-controls=\"elementor-tab-content-1941\" aria-expanded=\"true\" aria-selected=\"true\"><strong>Como funciona?<\/strong><\/p>\n<p>Elaboramos os portf\u00f3lios, j\u00e1 deixamos prontos, nas normas da ABNT e conforme os requisitos da universidade. F\u00e1cil assim! O MELHOR \u00c9 QUE VOC\u00ca COMPRA E J\u00c1 BAIXA NA HORA O SEU ARQUIVO EM WORD! Sabemos que conciliar trabalho, fam\u00edlia, vida profissional e estudos \u00e9 dif\u00edcil hoje em dia, por isso, estamos aqui para ajudar voc\u00ea. Conte com nossa qualidade, experi\u00eancia e profissionalismo adquirindo seu portf\u00f3lio conosco. GARANTIMOS SEU CONCEITO!<\/p>\n<p><strong>Como se realizam os envios?<\/strong><\/p>\n<\/div>\n<p id=\"elementor-tab-content-1942\" class=\"elementor-tab-content elementor-clearfix elementor-active\" role=\"tabpanel\" data-tab=\"2\" aria-labelledby=\"elementor-tab-title-1942\">O seu trabalho \u00e9 disponibilizado pronto, respondido e nas normas j\u00e1 na mesma hora aqui em nosso site na sua \u00e1rea de downloads e tamb\u00e9m no seu e-mail.<\/p>\n<p><strong>Em quanto tempo recebo o portf\u00f3lio?<\/strong><\/p>\n<p>Os envios s\u00e3o imediatos. Ap\u00f3s sua compra, o trabalho j\u00e1 \u00e9 disponibilizado instantaneamente aqui em nosso site e no seu e-mail.<\/p>\n<p><strong>E se o portf\u00f3lio que comprei precisar de corre\u00e7\u00e3o?<\/strong><\/p>\n<p>Caso haja alguma solicita\u00e7\u00e3o de corre\u00e7\u00e3o\/altera\u00e7\u00e3o por parte do tutor, basta entrar em contato conosco pelo\u00a0WhatsApp\u00a0que provid\u00eanciaremos sem custo algum.<\/p>\n<p><strong>Qual o formato do arquivo?<\/strong><\/p>\n<p>Os arquivos s\u00e3o enviados em formato Word e s\u00e3o edit\u00e1veis.<\/p>\n<p><strong>Caso eu tiver alguma d\u00favida, terei suporte no p\u00f3s venda?<\/strong><\/p>\n<p>Sim, com certeza. Basta clicar no \u00edcone do WhatsApp no cantinho da tela. Ser\u00e1 um prazer atend\u00ea-lo(a).<\/p>\n<div id=\"elementor-tab-content-1948\" class=\"elementor-tab-content elementor-clearfix elementor-active\" role=\"tabpanel\" data-tab=\"8\" aria-labelledby=\"elementor-tab-title-1948\">\n<p><strong>Quais os seus canais de contato?<\/strong><\/p>\n<\/div>\n<div id=\"elementor-tab-content-1949\" class=\"elementor-tab-content elementor-clearfix elementor-active\" role=\"tabpanel\" data-tab=\"9\" aria-labelledby=\"elementor-tab-title-1949\">\n<p>Whatsapp: 53 984751621 \u2013 Clicar no canto da tela ou ESCANEIE O QRCODE ABAIXO<\/p>\n<h4><img decoding=\"async\" class=\"alignnone wp-image-13699 jetpack-lazy-image jetpack-lazy-image--handled\" src=\"https:\/\/i0.wp.com\/portifolioos-prontos.com\/wp-content\/uploads\/2023\/02\/whatsapp-business-projeto-de-extensao-300x300.jpeg?resize=144%2C144\" sizes=\"(max-width: 144px) 100vw, 144px\" srcset=\"https:\/\/i0.wp.com\/portifolioos-prontos.com\/wp-content\/uploads\/2023\/02\/whatsapp-business-projeto-de-extensao.jpeg?resize=300%2C301&amp;ssl=1 300w, https:\/\/i0.wp.com\/portifolioos-prontos.com\/wp-content\/uploads\/2023\/02\/whatsapp-business-projeto-de-extensao.jpeg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/portifolioos-prontos.com\/wp-content\/uploads\/2023\/02\/whatsapp-business-projeto-de-extensao.jpeg?resize=370%2C372&amp;ssl=1 370w, https:\/\/i0.wp.com\/portifolioos-prontos.com\/wp-content\/uploads\/2023\/02\/whatsapp-business-projeto-de-extensao.jpeg?resize=100%2C100&amp;ssl=1 100w, https:\/\/i0.wp.com\/portifolioos-prontos.com\/wp-content\/uploads\/2023\/02\/whatsapp-business-projeto-de-extensao.jpeg?w=470&amp;ssl=1 470w\" alt=\"projeto de extens\u00e3o unopar\" width=\"144\" height=\"144\" data-lazy-loaded=\"1\" \/><\/h4>\n<\/div>\n<div class=\"elementor-toggle-item\">\n<div id=\"elementor-tab-content-1949\" class=\"elementor-tab-content elementor-clearfix elementor-active\" role=\"tabpanel\" data-tab=\"9\" aria-labelledby=\"elementor-tab-title-1949\">\n<p>E-mail:portifoliosp@gmail.com<\/p>\n<div id=\"attachment_143\" class=\"wp-caption alignnone\">\n<div id=\"attachment_143\" class=\"wp-caption alignnone\">\n<p id=\"caption-attachment-143\" class=\"wp-caption-text\"><a href=\"http:\/\/portfolio-pronto.com\/\">Portf\u00f3lio<\/a>\u00a0em Word, respondido, completo e j\u00e1 nas normas<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<div class=\"product-short-description\">\n<div class=\"product-short-description\">\n<p><strong>Pague pelo PIX ou cart\u00e3o e fa\u00e7a o download agora mesmo.<\/strong><\/p>\n<\/div>\n<div class=\"sticky-add-to-cart-wrapper\">\n<div class=\"sticky-add-to-cart\">\n<p class=\"quantity buttons_added form-flat\"><img decoding=\"async\" class=\"lazyloaded smush-image-5 smush-image-3 smush-image-4 smush-detected-img smush-image-bigger-3\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/visa@2x.png\" width=\"46\" height=\"29\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/visa@2x.png\" \/><img decoding=\"async\" class=\"lazyloaded smush-image-6 smush-image-4 smush-image-5 smush-detected-img smush-image-bigger-4\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/boleto@2x.png\" width=\"43\" height=\"27\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/boleto@2x.png\" \/><img loading=\"lazy\" decoding=\"async\" class=\"lazyloaded smush-image-7 smush-image-5 smush-image-6 smush-detected-img smush-image-bigger-5\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/mastercard@2x.png\" width=\"43\" height=\"27\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/mastercard@2x.png\" \/><img loading=\"lazy\" decoding=\"async\" class=\"lazyloaded smush-image-8 smush-image-6 smush-image-7 smush-detected-img smush-image-bigger-6\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/amex@2x.png\" width=\"43\" height=\"27\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/amex@2x.png\" \/><img loading=\"lazy\" decoding=\"async\" class=\"lazyloaded smush-image-9 smush-image-7 smush-image-8 smush-detected-img smush-image-bigger-7\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/diners@2x.png\" width=\"46\" height=\"29\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/diners@2x.png\" \/><img loading=\"lazy\" decoding=\"async\" class=\"lazyloaded smush-image-10 smush-image-8 smush-image-9 alignnone smush-detected-img smush-image-bigger-8\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/br\/elo@2x.png\" alt=\"portf\u00f3lio unopar anhanguera\" width=\"45\" height=\"28\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/br\/elo@2x.png\" \/><img loading=\"lazy\" decoding=\"async\" class=\"lazyloaded smush-image-11 smush-image-9 smush-image-10 alignnone smush-detected-img smush-image-bigger-9\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/br\/hipercard@2x.png\" alt=\"portf\u00f3lio unopar anhanguera\" width=\"44\" height=\"28\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/br\/hipercard@2x.png\" \/><img loading=\"lazy\" decoding=\"async\" class=\"lazyloaded smush-image-12 smush-image-10 smush-image-11 alignnone smush-detected-img smush-image-bigger-10\" src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/mercadopago@2x.png\" alt=\"portf\u00f3lio unopar anhanguera\" width=\"45\" height=\"28\" data-src=\"https:\/\/d26lpennugtm8s.cloudfront.net\/assets\/common\/img\/logos\/payment\/mercadopago@2x.png\" \/><img loading=\"lazy\" decoding=\"async\" class=\"alignnone ls-is-cached lazyloaded smush-detected-img smush-image-bigger-11\" src=\"https:\/\/futurium.com.br\/wp-content\/uploads\/2021\/06\/logo-pix-icone-512.png\" alt=\"portfolio pronto\" width=\"30\" height=\"30\" data-src=\"https:\/\/futurium.com.br\/wp-content\/uploads\/2021\/06\/logo-pix-icone-512.png\" \/><\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"featured_media":40737,"template":"","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"%%post_title%% %%sitetitle%%","_seopress_titles_desc":"%%post_content%%","_seopress_robots_index":""},"product_cat":[15],"product_tag":[],"class_list":{"0":"post-40734","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-uncategorized","8":"first","9":"instock","10":"shipping-taxable","11":"purchasable","12":"product-type-simple","13":"col-xs-6 col-sm-4","14":"col-mf-5","15":"un-5-cols"},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/product\/40734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/types\/product"}],"version-history":[{"count":0,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/product\/40734\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/media\/40737"}],"wp:attachment":[{"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/media?parent=40734"}],"wp:term":[{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/product_cat?post=40734"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/portifolioos-prontos.com\/index.php\/wp-json\/wp\/v2\/product_tag?post=40734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}