<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Introdução à Programação 1 e 2 (2009)</title>
	<atom:link href="http://www.brunocampagnolo.com/2009ip/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brunocampagnolo.com/2009ip</link>
	<description>PUCPR &#62; Design Digital &#62; 1o e 2o Períodos</description>
	<lastBuildDate>Fri, 18 Dec 2009 10:33:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nota Final!!!</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/12/18/nota-final/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/12/18/nota-final/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 10:33:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1059</guid>
		<description><![CDATA[Pessoal,
Já finalizei todas as correções necessárias e suas notas já estão na planilha abaixo.
Esta planilha é o que vale.
http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&#38;amp;hl=pt_BR
Observem&#160; possiveis erros de lançamento no iger e entrem em contato se necessário.
Caso alguém queira conversar comigo e conferir sua prova final, amanhã (sábado) das 8:00h às 9:30h estarei no Lab 7 do CCET. Destaco que não [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Já finalizei todas as correções necessárias e suas notas já estão na planilha abaixo.<br />
Esta planilha é o que vale.</p>
<p><a href="http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;hl=pt_BR">http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;hl=pt_BR</a></p>
<p>Observem&nbsp; possiveis erros de lançamento no iger e entrem em contato se necessário.</p>
<p>Caso alguém queira conversar comigo e conferir sua prova final, amanhã (sábado) das 8:00h às 9:30h estarei no Lab 7 do CCET. Destaco que não irei na PUCPR na segunda-feira.</p>
<p>Desejo a todos, boas férias e um excelente ano novo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/12/18/nota-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notas finais &#8211; favor conferir!</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/12/12/notas-finais-favor-conferir/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/12/12/notas-finais-favor-conferir/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 19:57:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outros]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1055</guid>
		<description><![CDATA[Pessoal,
Segue, abaixo, link para as notas finais:
http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&#38;amp;hl=pt_BR
Por favor, confira possíveis problemas e incoerências!
Observem que no Exame Final desta terça (15/12) teremos a matéria do ano todo (focando mais em estrutura de seleção e estrutura de repetição) e será uma prova TEÓRICA e SEM CONSULTA.
O exame será na sala teórica de vocês (D13?).
&#160;
&#160;
]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Segue, abaixo, link para as notas finais:</p>
<p><a href="http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;hl=pt_BR">http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;hl=pt_BR</a></p>
<p>Por favor, confira possíveis problemas e incoerências!</p>
<p>Observem que no Exame Final desta terça (15/12) teremos a matéria do ano todo (focando mais em estrutura de seleção e estrutura de repetição) e será uma prova TEÓRICA e SEM CONSULTA.</p>
<p>O exame será na sala teórica de vocês (D13?).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/12/12/notas-finais-favor-conferir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aviso! Notas até amanhã (12/12)</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/12/11/aviso-notas-ate-amanha-1212/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/12/11/aviso-notas-ate-amanha-1212/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 18:40:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1052</guid>
		<description><![CDATA[Pessoal,
Estou terminando a correção dos trabalhos. Amanhã liberarei as notas da 4a Parcial.
&#160;
]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Estou terminando a correção dos trabalhos. Amanhã liberarei as notas da 4a Parcial.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/12/11/aviso-notas-ate-amanha-1212/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrega P09 e P10</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/12/09/entrega-p09-e-p10/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/12/09/entrega-p09-e-p10/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 10:23:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outros]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1048</guid>
		<description><![CDATA[Criadas as atividades para entrega do P09 (entrega errada) e P10.
Por favor, quem entregou no local errado entregue novamente no Eureka, menu Estudos, menu Plano de Trabalho.
Importante: notas finais até sexta, dia 11/12.

]]></description>
			<content:encoded><![CDATA[<p>Criadas as atividades para entrega do P09 (entrega errada) e P10.</p>
<p>Por favor, quem entregou no local errado entregue novamente no Eureka, menu Estudos, menu Plano de Trabalho.</p>
<p>Importante: notas finais até sexta, dia 11/12.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/12/polano.png"><img class="alignnone size-full wp-image-1049" title="polano" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/12/polano.png" alt="polano" width="819" height="726" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/12/09/entrega-p09-e-p10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desenvolvimento para dispositivos móveis</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/11/24/desenvolvimento-para-dispositivos-moveis/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/11/24/desenvolvimento-para-dispositivos-moveis/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 18:46:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1039</guid>
		<description><![CDATA[Em nosso último tópico, vamos trabalhar com dispositivos móveis (celular).
Para isto, você vai utilizar a versão móvel do Processing: o Mobile Processing.
Se quiser instalar em sua casa, faça o download do Mobile Processing em:
http://mobile.processing.org/
IMPORTANTE: antes de instalar o mobile processing será necessária a instalação do Sun Java Wireless Toolkit 2.5:
http://java.sun.com/products/sjwtoolkit/download-2_5.html
&#160;
Apresentação referente a aula
Exemplos Mobile Processing
&#160;
]]></description>
			<content:encoded><![CDATA[<p>Em nosso último tópico, vamos trabalhar com dispositivos móveis (celular).</p>
<p>Para isto, você vai utilizar a versão móvel do Processing: o Mobile Processing.</p>
<p>Se quiser instalar em sua casa, faça o download do Mobile Processing em:</p>
<p><a href="http://mobile.processing.org/">http://mobile.processing.org/</a></p>
<p>IMPORTANTE: antes de instalar o mobile processing será necessária a instalação do Sun Java Wireless Toolkit 2.5:</p>
<p><a href="http://java.sun.com/products/sjwtoolkit/download-2_5.html">http://java.sun.com/products/sjwtoolkit/download-2_5.html</a></p>
<p>&nbsp;</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/11/moveis.ppt">Apresentação referente a aula</a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/11/ExemplosMobileProcessing.zip">Exemplos Mobile Processing</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/11/24/desenvolvimento-para-dispositivos-moveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício P09 &#8211; Bibliotecas do Processing</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/11/17/exercicio-p09-bibliotecas-do-processing/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/11/17/exercicio-p09-bibliotecas-do-processing/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 20:14:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[bibliotecas]]></category>
		<category><![CDATA[exercícioP09]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1029</guid>
		<description><![CDATA[Neste exercício, você vai desenvolver, de maneira colaborativa, exemplos e documentação referente às bibliotecas do Processing.
1) Escolha uma das bibliotecas listadas no resumo a seguir, na seção 5 (Links para Bibliotecas), ou procure por alguma biblioteca na Internet:
http://www.brunocampagnolo.com/2009_2/processing/libs/
Antes de escolher sua biblioteca verifique se alguém já não a escolheu no link abaixo:
http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjdEdRUXhUcUp1S1ZJeUpYeWNhZ1lNaFE&#38;amp;amp;amp;amp;hl=pt_BR
É essencial que cada [...]]]></description>
			<content:encoded><![CDATA[<p>Neste exercício, você vai desenvolver, de maneira colaborativa, exemplos e documentação referente às bibliotecas do Processing.</p>
<p>1) Escolha uma das bibliotecas listadas no resumo a seguir, na seção 5 (Links para Bibliotecas), ou procure por alguma biblioteca na Internet:</p>
<p><a href="http://www.brunocampagnolo.com/2009_2/processing/libs/">http://www.brunocampagnolo.com/2009_2/processing/libs/</a></p>
<p>Antes de escolher sua biblioteca verifique se alguém já não a escolheu no link abaixo:</p>
<p><a href="http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjdEdRUXhUcUp1S1ZJeUpYeWNhZ1lNaFE&amp;amp;amp;amp;amp;hl=pt_BR">http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjdEdRUXhUcUp1S1ZJeUpYeWNhZ1lNaFE&amp;amp;amp;amp;amp;hl=pt_BR</a></p>
<p>É essencial que cada aluno use uma biblioteca diferente.</p>
<p>Selecione sua biblioteca no link abaixo:</p>
<p><a href="http://spreadsheets.google.com/viewform?formkey=dEdRUXhUcUp1S1ZJeUpYeWNhZ1lNaFE6MA">http://spreadsheets.google.com/viewform?formkey=dEdRUXhUcUp1S1ZJeUpYeWNhZ1lNaFE6MA</a></p>
<p>2) Crie um documento sobre sua biblioteca, citando:</p>
<p>a) Nome;</p>
<p>b) Link;</p>
<p>c) Descrição do que faz a biblioteca;</p>
<p>d) Requisitos para instalação;</p>
<p>e) Passos para instalação;</p>
<p>d) Pelo menos 3 exemplos BEM COMENTADOS;</p>
<p>O primeiro exemplo, pode ser igual a um exemplo já fornecido pela biblioteca.</p>
<p>O segundo exemplo deve ser inédito.</p>
<p>Seu terceiro exemplo também deve ser inédito e usar também outra biblioteca qualquer a sua escolha.</p>
<p>3) Você deverá apresentar seu segundo exemplo no dia 8/12.</p>
<p>ENTREGA VIA EUREKA, EM PASTA CRIADA NO MÓDULO CONTEÚDO ATÉ O DIA 7/12.</p>
<p>Deixe seu exemplo público, para que seus colegas também possam vê-lo.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/11/17/exercicio-p09-bibliotecas-do-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bibliotecas no Processing</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/11/17/bibliotecas-no-processing/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/11/17/bibliotecas-no-processing/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 17:32:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1031</guid>
		<description><![CDATA[Resumo da aula

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009_2/processing/libs/">Resumo da aula</a></p>
<p><iframe src="http://www.brunocampagnolo.com/2009_2/processing/libs/" width="600" height="400"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/11/17/bibliotecas-no-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datas importantes!</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/11/10/datas-importantes/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/11/10/datas-importantes/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 21:26:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1026</guid>
		<description><![CDATA[10/11 &#8211; Correção e Vista de prova
17/11 &#8211; Bibliotecas (som, vídeo, camera, etc)
24/11 &#8211; Mobile (desenvolvimento para celular)
1/12 &#8211; Livre
8/12 &#8211; Entrega / defesa &#8211; trabalhos do 4o bimestre.
10/12 &#8211; vista de notas do 4o bimestre
15/12 &#8211; Prova final!
22/12 &#8211; Entrega da nota final
]]></description>
			<content:encoded><![CDATA[<p>10/11 &#8211; Correção e Vista de prova</p>
<p>17/11 &#8211; Bibliotecas (som, vídeo, camera, etc)</p>
<p>24/11 &#8211; Mobile (desenvolvimento para celular)</p>
<p>1/12 &#8211; Livre</p>
<p>8/12 &#8211; Entrega / defesa &#8211; trabalhos do 4o bimestre.</p>
<p>10/12 &#8211; vista de notas do 4o bimestre</p>
<p>15/12 &#8211; Prova final!</p>
<p>22/12 &#8211; Entrega da nota final</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/11/10/datas-importantes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notas!</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/11/10/notas/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/11/10/notas/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 20:00:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[notas]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1018</guid>
		<description><![CDATA[Pessoal,
Por favor confiram suas notas!
http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&#38;amp;amp;hl=pt_BR
Farei o lançamento no iger na próxima sexta. Qualquer problema, por favor, avise!
&#160;
&#160;
]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Por favor confiram suas notas!</p>
<p><a href="http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;amp;hl=pt_BR">http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;amp;hl=pt_BR</a></p>
<p>Farei o lançamento no iger na próxima sexta. Qualquer problema, por favor, avise!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/11/10/notas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prova 3 &#8211; recuperação</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/11/10/prova-3-recuperacao/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/11/10/prova-3-recuperacao/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 19:59:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1021</guid>
		<description><![CDATA[Refaça um dos modelos de prova DIFERENTE da prova que você fez.
Modelos da Prova 3
Entregar via formulário do Google:
http://spreadsheets.google.com/viewform?formkey=dDRvVmJKbHIwMjVwMzB4M2ttQXNMT0E6MA
]]></description>
			<content:encoded><![CDATA[<p>Refaça um dos modelos de prova DIFERENTE da prova que você fez.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/11/Prova03.zip">Modelos da Prova 3</a></p>
<p>Entregar via formulário do Google:</p>
<p><a href="http://spreadsheets.google.com/viewform?formkey=dDRvVmJKbHIwMjVwMzB4M2ttQXNMT0E6MA">http://spreadsheets.google.com/viewform?formkey=dDRvVmJKbHIwMjVwMzB4M2ttQXNMT0E6MA</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/11/10/prova-3-recuperacao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrega Exercício F08</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/11/04/entrega-exercicio-f08/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/11/04/entrega-exercicio-f08/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 18:22:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outros]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1014</guid>
		<description><![CDATA[Pessoal,
Estou começando a corrigir as provas de vocês.
Fechamento das notas na próxima semana.
Caso você queira entregar alguma correção, complemento ou entrega atrasada do P08, por favor, faça via Correio do Eureka até a próxima terça.
&#160;
]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Estou começando a corrigir as provas de vocês.</p>
<p>Fechamento das notas na próxima semana.</p>
<p>Caso você queira entregar alguma correção, complemento ou entrega atrasada do P08, por favor, faça via <strong>Correio do Eureka até a próxima terça</strong>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/11/04/entrega-exercicio-f08/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novas datas</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/10/15/novas-datas/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/10/15/novas-datas/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 21:27:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1007</guid>
		<description><![CDATA[* 20/10/2009 &#8211; Fornecimento de Lista de exercícios (AQUI) para prova e dúvidas P08.
* 27/10/2009 &#8211; Entrega e defesa do Exercício P08
* 3/11/2009 &#8211; Prova 3o bimestre
&#160;
&#160;
&#160;
]]></description>
			<content:encoded><![CDATA[<p>* 20/10/2009 &#8211; Fornecimento de Lista de exercícios (<a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/10/ListaProva_Final.ppt">AQUI</a>) para prova e dúvidas P08.</p>
<p>* 27/10/2009 &#8211; Entrega e defesa do Exercício P08</p>
<p>* 3/11/2009 &#8211; Prova 3o bimestre</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/10/15/novas-datas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exemplo de carregamento de modelo .obj</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/10/06/exemplo-de-carregamento-de-modelo-obj/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/10/06/exemplo-de-carregamento-de-modelo-obj/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:23:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[obj]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=1002</guid>
		<description><![CDATA[Exemplo de carregamento de modelo .obj
Para que funcione é necessário a instalação da biblioteca .obj loader.
Passo a passo 3d no Processing, ver seção 8.
&#160;
Links para arquivos .obj.
&#160;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/10/carrega_obj.zip">Exemplo de carregamento de modelo .obj</a></p>
<p>Para que funcione é necessário a instalação da biblioteca <a href="http://code.google.com/p/saitoobjloader/">.obj loader.</a></p>
<p><a href="http://www.brunocampagnolo.com/2009_2/processing/p3d/">Passo a passo 3d no Processing, ver seção 8.</a></p>
<p>&nbsp;</p>
<p><a href="http://people.sc.fsu.edu/~burkardt/data/obj/obj.html">Links para arquivos .obj.</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/10/06/exemplo-de-carregamento-de-modelo-obj/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício P08 &#8211; Funções</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/09/29/exercicio-p08-funcoes/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/09/29/exercicio-p08-funcoes/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 20:59:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercicioP08]]></category>
		<category><![CDATA[funções]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=988</guid>
		<description><![CDATA[Especificação em anexo
Entrega em 20/10!
&#160;
Código parcial do jogo de tiro
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/09/ExercsP08_Final.ppt">Especificação em anexo</a></p>
<p>Entrega em 20/10!</p>
<p>&nbsp;</p>
<p><span style="color: #ffffff;"><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/09/invaders_final.pde">Código parcial do jogo de tiro</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/09/29/exercicio-p08-funcoes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Funções em Processing</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/09/29/funcoes-em-processing/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/09/29/funcoes-em-processing/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 20:22:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[funções]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=991</guid>
		<description><![CDATA[Em anexo
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009_2/processing/funcoes/">Em anexo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/09/29/funcoes-em-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resposta sugerida para o exercício do Relógio</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/09/29/resposta-sugerida-para-o-exercicio-do-relogio/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/09/29/resposta-sugerida-para-o-exercicio-do-relogio/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 18:37:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=985</guid>
		<description><![CDATA[Em anexo!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/09/relogio.zip">Em anexo!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/09/29/resposta-sugerida-para-o-exercicio-do-relogio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entrega do Exercício P07 (vista durante a aula de 1/9/2009)</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/09/01/entrega-do-exercicio-p07-vista-durante-a-aula-de-192009/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/09/01/entrega-do-exercicio-p07-vista-durante-a-aula-de-192009/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 20:27:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[aquecimento]]></category>
		<category><![CDATA[exercicioP07]]></category>
		<category><![CDATA[relógio]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=980</guid>
		<description><![CDATA[Carregando&#8230;
]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://spreadsheets.google.com/embeddedform?key=tkEPe0KItvcve0pn5G7zGkw" width="500" height="355" frameborder="0" marginheight="0" marginwidth="0">Carregando&#8230;</iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/09/01/entrega-do-exercicio-p07-vista-durante-a-aula-de-192009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3d no Processing</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/08/25/3d-no-processing/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/08/25/3d-no-processing/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 22:06:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=976</guid>
		<description><![CDATA[Resumo sobre 3d no Processing
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/08/3dProcessing1.zip">Resumo sobre 3d no Processing</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/08/25/3d-no-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exemplos da aula de 3d</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/08/18/exemplos-da-aula-de-3d/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/08/18/exemplos-da-aula-de-3d/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 21:35:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=972</guid>
		<description><![CDATA[// Primeiro exemplo:
size(400,400,P3D);
background(128);
smooth();
pushMatrix(); // Armazena a posição do eixo
translate(width/2,height/2);
rotate(PI/4);
stroke(255,0,0);
line(0,0,400,0); // Eixo x
stroke(0,255,0); // Verde
line(0,0,0,400);
stroke(0,0,255);
rect(-10,-10,20,20);
//rotateX(PI/4);
//rect(-100,100, 200, 200);
popMatrix(); // Volta
rect(-10,-10,20,20);
// Segundo exemplo:
import processing.opengl.*;
void setup() {
&#160; size(400,400,OPENGL);
&#160; //noStroke();
}
void draw() {
&#160; background(128);
&#160; translate(width/2,height/2);
&#160; // Map é uma regra de 3!
&#160; rotateX( map(mouseY,0,height,0,2*PI) );
&#160; rotateY( map(mouseX,0,width,0,2*PI) );
&#160; //rect(-100,-100,200,200);
&#160; //box(50, 100, 30);
&#160; sphereDetail(100);
&#160; sphere(100);
}
]]></description>
			<content:encoded><![CDATA[<p>// Primeiro exemplo:</p>
<p>size(400,400,P3D);<br />
background(128);<br />
smooth();<br />
pushMatrix(); // Armazena a posição do eixo<br />
translate(width/2,height/2);<br />
rotate(PI/4);<br />
stroke(255,0,0);<br />
line(0,0,400,0); // Eixo x<br />
stroke(0,255,0); // Verde<br />
line(0,0,0,400);<br />
stroke(0,0,255);<br />
rect(-10,-10,20,20);<br />
//rotateX(PI/4);<br />
//rect(-100,100, 200, 200);<br />
popMatrix(); // Volta<br />
rect(-10,-10,20,20);</p>
<p>// Segundo exemplo:</p>
<p>import processing.opengl.*;<br />
void setup() {<br />
&nbsp; size(400,400,OPENGL);<br />
&nbsp; //noStroke();<br />
}<br />
void draw() {<br />
&nbsp; background(128);<br />
&nbsp; translate(width/2,height/2);<br />
&nbsp; // Map é uma regra de 3!<br />
&nbsp; rotateX( map(mouseY,0,height,0,2*PI) );<br />
&nbsp; rotateY( map(mouseX,0,width,0,2*PI) );<br />
&nbsp; //rect(-100,-100,200,200);<br />
&nbsp; //box(50, 100, 30);<br />
&nbsp; sphereDetail(100);<br />
&nbsp; sphere(100);<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/08/18/exemplos-da-aula-de-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resumo sobre transformações 3d no Processing</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/08/18/resumo-sobre-transformacoes-3d-no-processing/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/08/18/resumo-sobre-transformacoes-3d-no-processing/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 19:34:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=968</guid>
		<description><![CDATA[3d no Processing
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/08/3dProcessing.zip">3d no Processing</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/08/18/resumo-sobre-transformacoes-3d-no-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Divulgação:  200 Character Processing Competition (até 13/9/2009)</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/08/12/divulgacao-200-character-processing-competition-ate-1392009/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/08/12/divulgacao-200-character-processing-competition-ate-1392009/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 14:31:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outros]]></category>
		<category><![CDATA[divulgação]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[twitcode]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=964</guid>
		<description><![CDATA[Original em: http://openprocessing.org/collections/rhizome.php
Competição aberta para criação de programas em Processing com um limite de 200 caracteres (ou menos).
Envie seu programa até dia * 13/9/2009 *.
Para quem tem interesse em participar, uma dica também é testar alguns exemplos de código gerados em uma iniciativa espontânea semelhante:
http://www.abstractmachine.net/blog/p5-tweets/
Neste caso, o código era postado via Twitter, limitado a um [...]]]></description>
			<content:encoded><![CDATA[<p>Original em: <a href="http://openprocessing.org/collections/rhizome.php">http://openprocessing.org/collections/rhizome.php</a></p>
<p>Competição aberta para criação de programas em Processing com um limite de 200 caracteres (ou menos).</p>
<p>Envie seu programa até dia * 13/9/2009 *.</p>
<p>Para quem tem interesse em participar, uma dica também é testar alguns exemplos de código gerados em uma iniciativa espontânea semelhante:</p>
<p><a href="http://www.abstractmachine.net/blog/p5-tweets/">http://www.abstractmachine.net/blog/p5-tweets/</a></p>
<p>Neste caso, o código era postado via <a href="http://twitter.com">Twitter</a>, limitado a um único tweet, ou seja, 140 caracteres.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/08/12/divulgacao-200-character-processing-competition-ate-1392009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício P07 (aquecimento) (retorno das férias!)</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/07/28/exercicio-p07-aquecimento-retorno-das-ferias/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/07/28/exercicio-p07-aquecimento-retorno-das-ferias/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 21:09:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=947</guid>
		<description><![CDATA[Sejam bem vindos de volta à nossa disciplina de Introdução à Programação. Neste semestre, continuaremos a trabalhar com a linguagem Processing e, principalmente, com mais fundamentos referentes à lógica de programação. Trabalhamemos neste semestre com:

Processamento de imagem;
Programação gráfica 3d;
Programação para dispositivos móveis;
Modularização de algoritmos;
Uso de bibliotecas em geral;
Bibliotecas de física e simulação;
Programação de som e [...]]]></description>
			<content:encoded><![CDATA[<p>Sejam bem vindos de volta à nossa disciplina de Introdução à Programação. Neste semestre, continuaremos a trabalhar com a linguagem Processing e, principalmente, com mais fundamentos referentes à lógica de programação. Trabalhamemos neste semestre com:</p>
<ul>
<li>Processamento de imagem;</li>
<li>Programação gráfica 3d;</li>
<li>Programação para dispositivos móveis;</li>
<li>Modularização de algoritmos;</li>
<li>Uso de bibliotecas em geral;</li>
<li>Bibliotecas de física e simulação;</li>
<li>Programação de som e video;</li>
<li>Realidade aumentada;</li>
<li>Desenvolvimento de projeto.</li>
</ul>
<p>Neste semestre, continua a <strong>diminuir o peso</strong> da prova e a crescer o peso dos trabalhos.</p>
<p>Os exercícios a seguir são um <strong>aquecimento</strong>, um preview do que está para vir e servem, também, para ilustrar alguns temas que passamos rapidamente no semestre anterior.</p>
<p>1) Por padrão, o eixo de coordenadas no Processing funciona como na imagem a seguir:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/eixo.png"><img class="alignnone size-full wp-image-948" title="eixo" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/eixo.png" alt="eixo" width="332" height="152" /></a></p>
<p>Na prática, podemos mover este sistema de coordenadas através de comandos de <strong>transformação de coordenadas</strong>. Principalmente quando formos trabalhar com coordenadas em 3d, muitas vezes é mais fácil mover o eixo.</p>
<p>A função translate (<a href="http://processing.org/reference/translate_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/translate_.html">pt</a>) move o eixo a partir da lateral superior esquerda. Esta função recebe dois parâmetros: o primeiro, é o deslocamento em relação ao eixo x e o segundo é o deslocamento em relação ao eixo y.</p>
<p>Complete o código a seguir com os comandos de transformação de forma a conseguir o resultado esperado. Observe que a letra a já está respondida.</p>
<p>a)&nbsp;</p>
<p>rect(10, 10, 30, 30);<br />
translate(50, 0);<br />
rect(10, 10, 30, 30);<br />
translate(__X1__, __X2__);<br />
rect(10, 10, 30, 30);<br />
translate(__X3__, __X4__);<br />
rect(10, 10, 30, 30);</p>
<p>Resultado esperado:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exerctranslate_a.png"><img class="alignnone size-full wp-image-949" title="exerctranslate_a" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exerctranslate_a.png" alt="exerctranslate_a" width="144" height="164" /></a></p>
<p>Resposta do exercício:</p>
<p>rect(10, 10, 30, 30);<br />
translate(50, 0);<br />
rect(10, 10, 30, 30);<br />
translate(<span style="text-decoration: underline;"><strong>0</strong></span>, <span style="text-decoration: underline;"><strong>50</strong></span>);<br />
rect(10, 10, 30, 30);<br />
translate(<span style="text-decoration: underline;"><strong>-50</strong></span>, <strong><span style="text-decoration: underline;">0</span></strong>);<br />
rect(10, 10, 30, 30);</p>
<p>b)</p>
<p>ellipse(50, 50, 10, 10);<br />
translate(10, 10);<br />
ellipse(50, 50, 10, 10);<br />
translate(__x1__, __x2__);<br />
ellipse(50, 50, 10, 10);<br />
translate(__x3__, __x4__);<br />
ellipse(50, 50, 10, 10);<br />
translate(__x5__, __x6__);<br />
ellipse(50, 50, 10, 10);</p>
<p>Resultado esperado:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exerctranslate_b.png"><img class="alignnone size-full wp-image-950" title="exerctranslate_b" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exerctranslate_b.png" alt="exerctranslate_b" width="144" height="164" /></a></p>
<p>c)</p>
<p>for(int i=0;i&lt;10;i++) {<br />
&nbsp; rect(0, 0, 10, 10);<br />
&nbsp; translate(__X1__, __X2__);<br />
}</p>
<p>Resultado esperado:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exerctranslate_c.png"><img class="alignnone size-full wp-image-951" title="exerctranslate_c" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exerctranslate_c.png" alt="exerctranslate_c" width="144" height="164" /></a></p>
<p>2) Outra transformação possível é a rotação, implementada através do comando rotate (<a href="http://processing.org/reference/rotate_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/rotate_.html">pt</a>). Tal função rotaciona&nbsp; o eixo em uma quantidade especificada pelo parâmetro. O ângulo é dado em radianos, ou seja, devem estar entre zero e 2PI. Se quiser converter de graus para radianos use a função radians (<a href="http://processing.org/reference/radians_.html">en</a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/radians_.html">pt</a>).</p>
<p>Complete o código a seguir de forma a conseguir o resultado esperado. Observe que a letra a já está respondida.</p>
<p>a)</p>
<p>noFill();<br />
stroke(__X1__,0,0);<br />
line(0,0, 100, 0);<br />
rect(20, 20, 50, 50);<br />
rotate(__X2__);<br />
stroke(0,255,0);<br />
line(0, 0, 100, 0);<br />
rect(20, 20, 50, 50);<br />
rotate(__X3__);<br />
stroke(0,0,255);<br />
line(0, 0, 100, 0);<br />
rect(20, 20, 50, 50);</p>
<p>Resultado esperado:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercrotate_a.png"><img class="alignnone size-full wp-image-952" title="exercrotate_a" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercrotate_a.png" alt="exercrotate_a" width="144" height="164" /></a></p>
<p>Resposta:</p>
<p>noFill();<br />
stroke(255,0,0);<br />
line(0,0, 100, 0);<br />
rect(20, 20, 50, 50);<br />
rotate(PI/12);<br />
stroke(0,255,0);<br />
line(0, 0, 100, 0);<br />
rect(20, 20, 50, 50);<br />
rotate(PI/12);<br />
stroke(0,0,255);<br />
line(0, 0, 100, 0);<br />
rect(20, 20, 50, 50);</p>
<p>b)</p>
<p>noFill();<br />
stroke(255,0,0);<br />
line(0, 0, 100, 0);<br />
line(0, 0, 0, 100);<br />
rect(-20, -20, 40, 40);<br />
translate(__X1__,__X2__);<br />
stroke(0,255,0);<br />
line(0, 0, 100, 0);<br />
line(0, 0, 0, 100);<br />
rect(-20, -20, 40, 40);<br />
rotate(__X3__);<br />
stroke(0,0,255);<br />
line(0, 0, 100, 0);<br />
line(0, 0, 0, 100);<br />
rect(-20, -20, 40, 40);<br />
rotate(__X4__);<br />
stroke(255,0,255);<br />
line(0, 0, 100, 0);<br />
line(0, 0, 0, 100);<br />
rect(-20, -20, 40, 40);</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercrotate_b.png"><img class="alignnone size-full wp-image-953" title="exercrotate_b" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercrotate_b.png" alt="exercrotate_b" width="144" height="164" /></a></p>
<p>c)</p>
<p>noFill();<br />
translate(50,50);<br />
for(int i=0;i&lt;10;i++) {<br />
&nbsp; rotate(__X__);<br />
&nbsp; rect(-25, -25, 50, 50);<br />
}</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercrotate_c.png"><img class="alignnone size-full wp-image-954" title="exercrotate_c" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercrotate_c.png" alt="exercrotate_c" width="144" height="164" /></a></p>
<p>&nbsp;</p>
<p>3) Outros comandos disponíveis relacionados à transformações são os comandos scale (<a href="http://processing.org/reference/scale_.html">en</a> / <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/scale_.html">pt</a>), pushMatrix (<a href="http://processing.org/reference/pushMatrix_.html">en</a> / <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/pushMatrix_.html">pt</a>) e popMatrix (<a href="http://processing.org/reference/popMatrix_.html">en</a> / <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/popMatrix_.html">pt</a>). A função scale aumenta/diminui o eixo de coordenadas. A função pushMatrix guarda em uma pilha o estado atual das transformações sendo feitas. A função popMatrix retorna ao estado colocado anteriormente na pilha.</p>
<p>Complete o código a seguir de forma a conseguir o resultado esperado.</p>
<p>a)</p>
<p>pushMatrix();<br />
translate(50,50);<br />
for(int i=0;i&lt;5;i++) {<br />
&nbsp; rotate(__X1__);<br />
&nbsp; scale(__X2__);<br />
&nbsp; rect(-30, -30, __X3__, __X4__);<br />
}<br />
popMatrix();<br />
noFill();<br />
rect(10, 10, 80, 80);</p>
<p>Resultado esperado:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercscale_a.png"><img class="alignnone size-full wp-image-956" title="exercscale_a" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/exercscale_a.png" alt="exercscale_a" width="144" height="164" /></a></p>
<p>&nbsp;</p>
<p>3) O comando size (<a href="http://processing.org/reference/size_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/size_.html">pt</a>) define o dimensionamento da janela de visualização. Até agora, usamos o comando size apenas com os parâmetros largura e altura. O 3o parâmetro do comando size permite que façamos a escolha do renderizador que o Processing vai usar. Os renderizadores disponíveis são:</p>
<ul>
<li><strong>JAVA2D</strong>: padrão, ideal para trabalhar com gráficos vetoriais 2d;</li>
<li><strong>P2D</strong>: destinado a gráficos simples e voltado para manipulação direta de pixels;</li>
<li><strong>P3D</strong>: gráficos em 3d simplificados, voltados para o trabalho com pixels diretamente;</li>
<li><strong>OPENGL</strong>: gráficos em 3d via JOGL;</li>
<li><strong>PDF</strong>: desenha em um arquivo PDF.</li>
</ul>
<p>Para usar esses renderizadores, use, por exemplo:</p>
<ul>
<li>size(400, 400, JAVA2D);</li>
<li>size(400, 400, P2P);</li>
<li>size(400, 400, P3D);</li>
<li>size(400, 400, OPENGL);</li>
<li>size(400, 400, PDF, &#8220;output.pdf&#8221;);</li>
</ul>
<p>Para usar o renderizador OPENGL é necessário selecionar o menu Sketch &gt; Import Library &gt; OpenGL.</p>
<p>Observe que para a visualização em 3d (P3D e OPENGL) o eixo z agora deve ser considerado.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/eixo3d.png"><img class="alignnone size-full wp-image-957" title="eixo3d" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/eixo3d.png" alt="eixo3d" width="537" height="396" /></a></p>
<p>Fonte das imagens: REAS &amp;amp;amp;amp; FRY (Processing).</p>
<p>Observe que agora é possível usar as funções rotateX, rotateY e rotateZ de maneira semelhante à função rotate.</p>
<p>&nbsp;</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/eixo3dRotacao1.png"><img class="alignnone size-full wp-image-959" title="eixo3dRotacao" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/07/eixo3dRotacao1.png" alt="eixo3dRotacao" width="789" height="259" /></a></p>
<p>Fonte das imagens: REAS &amp;amp;amp;amp; FRY (Processing).</p>
<p><span style="text-decoration: underline;">Refaça qualquer um dos exercícios que entregou anteriormente utilizando o renderizador OpenGL e o renderizador P3D.</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/07/28/exercicio-p07-aquecimento-retorno-das-ferias/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notas e Presenças (1o e 2o Bimestres)</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/07/06/notas-e-presencas-1o-e-2o-bimestres/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/07/06/notas-e-presencas-1o-e-2o-bimestres/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 21:46:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[outros]]></category>
		<category><![CDATA[notas]]></category>
		<category><![CDATA[presenças]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=942</guid>
		<description><![CDATA[Pessoal,
Por favor, confiram suas notas e presenças nos links a seguir! Também já fiz o lançamento no iger.
Na planilha de notas observem que TODOS os trabalhos foram abertos, conferidos e verificados, valorizando os trabalhos que apresentassem originalidade e que atendessem ou superassem o que era esperado para o exercício.
Leiam, portanto, as dicas e comentários para [...]]]></description>
			<content:encoded><![CDATA[<p>Pessoal,</p>
<p>Por favor,<strong> confiram suas notas e presenças nos links a seguir</strong>! Também já fiz o lançamento no iger.</p>
<p>Na planilha de notas observem que <strong>TODOS </strong>os trabalhos foram abertos, conferidos e verificados, valorizando os trabalhos que apresentassem <strong>originalidade </strong>e que atendessem ou superassem o que era esperado para o exercício.</p>
<p>Leiam, portanto, as dicas e comentários para cada resolução.</p>
<p>Verifiquem também se todos os trabalhos que vocês mandaram foram checados!</p>
<p>Qualquer problema, faço a modificação em sua nota em nossa primeira semana de retorno. A vista da prova 2 também fica para esta semana.</p>
<p>Em relação ao 4o exercício da prova, segue abaixo:</p>
<p><em>4) Para casa, entrega até o dia 27/7/2009, via Correio do Eureka, exercícios M e K da Lista de Exercícios de Revisão:</em></p>
<p><em><a href="http://www.brunocampagnolo.com/2009ip/2009/06/23/exercicio-de-revisao-para-prova-2o-bimestre/">http://www.brunocampagnolo.com/2009ip/2009/06/23/exercicio-de-revisao-para-prova-2o-bimestre/</a></em></p>
<p>&nbsp;</p>
<p>NOTAS:</p>
<p><a href="http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;amp;hl=pt_BR">http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcmFMU1NoM3phaUFQaVRualVIV2tkc0E&amp;amp;amp;hl=pt_BR</a></p>
<p>PRESENÇAS:</p>
<p><a href="http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcEQ1eGlGS0U5b2owNzNMUmJuSmFDRkE&amp;amp;amp;hl=pt_BR">http://spreadsheets.google.com/ccc?key=0AqQ2GvdPZmGjcEQ1eGlGS0U5b2owNzNMUmJuSmFDRkE&amp;amp;amp;hl=pt_BR</a></p>
<p>&nbsp;</p>
<p>Abraços e Boas Férias!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/07/06/notas-e-presencas-1o-e-2o-bimestres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício de Revisão para Prova (2o Bimestre)</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/06/23/exercicio-de-revisao-para-prova-2o-bimestre/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/06/23/exercicio-de-revisao-para-prova-2o-bimestre/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 19:10:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[revisão]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=906</guid>
		<description><![CDATA[Os exercícios abaixo são uma revisão para a prova a ser realizada em Primeiro de Julho (QUARTA-FEIRA).
Esta prova, de duração de 1h e 10 min será na Sala de Desenho 13, térreo do bloco de exatas e será sem consulta.
Os exercícios marcados com * são os modelos mais prováveis de aparecerem em sua prova!
Exercícios Referentes [...]]]></description>
			<content:encoded><![CDATA[<p>Os exercícios abaixo são uma revisão para a prova a ser realizada em <strong>Primeiro de Julho (QUARTA-FEIRA)</strong>.</p>
<p>Esta prova, de duração de 1h e 10 min será na Sala de Desenho 13, térreo do bloco de exatas e será <strong><span style="text-decoration: underline;">sem consulta.</span></strong></p>
<p>Os exercícios marcados com * são os modelos mais prováveis de aparecerem em sua prova!</p>
<h2>Exercícios Referentes a Funções Matemáticas</h2>
<p>Ver <a href="http://www.brunocampagnolo.com/2009ip/2009/05/05/aula-05-funcoes-matematicas-parte-1-restricoes-e-numeros-aleatorios/">Aula 05</a> e <a href="http://www.brunocampagnolo.com/2009ip/2009/05/05/exercicio-p04-funcoes-matematicas/">Exercício P04</a>!</p>
<p>A) <strong><span style="text-decoration: underline;">Defina </span></strong>o que faz a função matemática map. Exemplifique.</p>
<p>B) <strong><span style="text-decoration: underline;">Diferencie </span></strong>as funções abs, ceil, floor e round.</p>
<p>C) <strong><span style="text-decoration: underline;">Indique </span></strong>qual é o valor em x após a execução do código a seguir?</p>
<p>float a = 10, b = 20, c, x;<br />
c = max(a, b);<br />
x = map(c, 0, 100, 0, 200);</p>
<p>Após a execução o valor em x é igual a: ___</p>
<p>* D) <strong><span style="text-decoration: underline;">Complete </span></strong>o código a seguir nos espaços indicados. Este código deve exibir uma área da tela na qual o seu mouse, representado por uma elipse deve estar restrita.</p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">void</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;"> </span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">draw</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">()</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">{</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">&nbsp;background(255); // Cor de fundo</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">float</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;"> mx = </span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">constrain</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">(</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">mouseX</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">, <span style="color: #ff0000;">__x1__</span>, <span style="color: #ff0000;">__x2__</span>);<br />
</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">float</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;"> </span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">my</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;"> = </span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">constrain</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">(</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">mouseY</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">, <span style="color: #ff0000;">__x3__</span>, <span style="color: #ff0000;">__x4__</span>);<br />
</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">rectMode</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">(CORNERS); // Modo de desenho de retângulos</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">rect</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">(<span style="color: #ff0000;">__x5__, __x6__, __x7__, __x8__</span>); // Desenha um retângulo</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">ellipse</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">(mx, </span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">my</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">, 5, 5); // Desenha uma elipse que acompanha o mouse</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">}</span></p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;">&nbsp;</p>
<p style="margin-top: 4.32pt; margin-bottom: 0pt; text-align: left; direction: ltr; unicode-bidi: embed; vertical-align: baseline;"><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;; color: black;">Os valores a serem completados são:<br />
</span></p>
<p>__x1__ =</p>
<p>__x2__ =</p>
<p>__x3__ =</p>
<p>__x4__ =</p>
<p>__x5__ =</p>
<p>__x6__ =</p>
<p>__x7__ =</p>
<p>__x8__ =</p>
<h2>Exercícios Referentes a Estruturas de Repetição</h2>
<p>Ver <a href="http://www.brunocampagnolo.com/2009ip/2009/05/19/aula-08-estrutura-de-repeticao/">Aula 08</a> e<a href="http://www.brunocampagnolo.com/2009ip/2009/05/26/exercicio-p05-geracao-procedural-de-padroes-e-texturas/"> Exercício P05</a></p>
<p>E) A estrutura de repetição for é formada por três partes:</p>
<p>for(PARTE1;PARTE2;PARTE3) {</p>
<p>}</p>
<p><strong><span style="text-decoration: underline;">Defina </span></strong>qual é o nome e função de cada uma destas partes.</p>
<p>* F) <span style="text-decoration: underline;"><strong>Identifique</strong></span> o erro nas estruturas de repetição abaixo e <strong><span style="text-decoration: underline;">corrija </span></strong>os fragmentos abaixo:</p>
<p>a) (exemplo respondido!)</p>
<p>for(int var=0;var2&lt;10;var = var + 1) {<br />
&nbsp; println(var);<br />
}</p>
<p>RESPOSTA: O nome da variável é var. Na condição, está sendo referenciada a variável var2.</p>
<p>b)</p>
<p>for(var=0;var&lt;10;int var = var + 1) {<br />
&nbsp; println(var);<br />
}</p>
<p>c)(o código abaixo deveria repetir 10 vezes)</p>
<p>for(int var=0;var=10;var = var + 1) {<br />
&nbsp; println(var);<br />
}</p>
<p>&nbsp;</p>
<p>* G) <strong><span style="text-decoration: underline;">Reconheça</span></strong>, nos framentos de código a seguir qual é a variável de controle, valor inicial desta variável, valor do incremento e valor final para cada uma das estruturas de repetição abaixo.</p>
<p>a)(exemplo respondido!)</p>
<p>for(int i=5;i&lt;10;i=i+1) {<br />
&nbsp; println(i);<br />
}</p>
<p>Resposta esperada:</p>
<ul>
<li>Variável de controle: i</li>
<li>Valor inicial: 5</li>
<li>Incremento: 1</li>
<li>Valor final: 10</li>
</ul>
<p>b)</p>
<p>for(int i=10;i&lt;=200;i=i+2) {<br />
&nbsp; println(i);<br />
}</p>
<p>c)</p>
<p>for(int num=1000;num&gt;=800;num=num-2) {<br />
&nbsp; println(num);<br />
}</p>
<p>d)</p>
<p>for(int num=1000;num&gt;=100;num=num/2) {<br />
&nbsp; println(num);<br />
}</p>
<p>e)</p>
<p>for(int x=1;x&lt;=100;x=x*3) {<br />
&nbsp; println(x);<br />
}</p>
<p>* H) <span style="text-decoration: underline;"><strong>Complete </strong></span>o teste de mesa em cada um dos exemplos abaixo:</p>
<p>a) (exemplo respondido!)</p>
<p>int a = 10;<br />
for(int i=0;i&lt;3;i++) {<br />
&nbsp; a = a + i;<br />
}</p>
<table border="1">
<tbody>
<tr>
<td>a</td>
<td>i</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">10</span></td>
<td><span style="text-decoration: line-through;">0</span></td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">11</span></td>
<td><span style="text-decoration: line-through;">1</span></td>
</tr>
<tr>
<td>13</td>
<td><span style="text-decoration: line-through;">2</span></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>3</td>
</tr>
</tbody>
</table>
<p>b)</p>
<p>int a = 10;<br />
for(int i=1;i&lt;6;i=i+2) {<br />
&nbsp; a = a * i;<br />
}</p>
<p>c)</p>
<p>int a = 5;<br />
for(int i=1;i&lt;=3;i=i+1) {<br />
&nbsp; if(i%2==1) {<br />
&nbsp;&nbsp;&nbsp; a = a + 1;<br />
&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; a = a + 2;<br />
&nbsp; }<br />
}</p>
<p>d)</p>
<p>int b = 10;<br />
for(int x=1;x!=4;x++) {<br />
&nbsp; b = b &#8211; x;<br />
}</p>
<p>e)</p>
<p>int a=0;<br />
for(int x=1;x&lt;=2;x++) {<br />
&nbsp; for(int y=1;y&lt;=2;y++) {<br />
&nbsp;&nbsp;&nbsp; a = a + (x * y);<br />
&nbsp; } &nbsp;<br />
}</p>
<p>&nbsp;</p>
<p>* I) Cada um dos códigos abaixo gera uma figura.</p>
<p><strong><span style="text-decoration: underline;">Mostre (desenhe)</span></strong> o resultado da execução do código.</p>
<p>a) (exemplo respondido!)</p>
<p>size(100,100);<br />
for(int i=100;i&gt;0;i=i-30) {<br />
&nbsp; ellipse(50,50,i,i);<br />
}</p>
<p>RESPOSTA ESPERADA:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioCodigoA.png"><img class="alignnone size-full wp-image-909" title="exercicioCodigoA" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioCodigoA.png" alt="exercicioCodigoA" width="103" height="104" /></a></p>
<p>b)</p>
<p>size(100,100);<br />
rectMode(CENTER);<br />
for(int i=100;i&gt;=10;i = i / 2) {<br />
&nbsp; if(i%2==0) {<br />
&nbsp;&nbsp;&nbsp; ellipse(50,50, i, i);<br />
&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; rect(50, 50, i, i);<br />
&nbsp; }<br />
}</p>
<p>c)</p>
<p>size(100,100);<br />
for(int i=1;i&lt;100;i=i*4) {<br />
&nbsp; line(i, 0, i, 100);<br />
}</p>
<p>d)</p>
<p>size(50,50);<br />
for(int i=0;i&lt;3;i++) {<br />
&nbsp; for(int j=0;j&lt;3;j++) {<br />
&nbsp;&nbsp;&nbsp; rect(i*10, j*10, 10, 10);<br />
&nbsp; }<br />
}</p>
<h2>Exercícios Referentes A Cores</h2>
<p>Ver <a href="http://www.brunocampagnolo.com/2009ip/2009/06/02/aula-10-cores/">Aula 10</a></p>
<p>J) <strong><span style="text-decoration: underline;">Diferencie </span></strong>a notação RGB e a notação HSB.</p>
<p>K) Observe o jogo de labirinto colocado a seguir. Faça com que quando o usuário chegue no ponto vermelho seja exibida uma mensagem de vitória e seja carregado outro labirinto. Gerador de labirintos: <a href="http://xefer.com/maze-generator">http://xefer.com/maze-generator</a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioK.png"><img class="alignnone size-full wp-image-933" title="exercicioK" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioK.png" alt="exercicioK" width="550" height="628" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/labirinto.png"><img class="alignnone size-full wp-image-937" title="labirinto" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/labirinto.png" alt="labirinto" width="406" height="206" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index20.html">Executar!</a></p>
<p>&nbsp;</p>
<h2>Exercícios Referentes A Vetores</h2>
<p>Ver <a href="http://www.brunocampagnolo.com/2009ip/2009/06/16/aula-12-vetores/">Aula 12</a></p>
<p>* L) <span style="text-decoration: underline;"><strong>Complete </strong></span>o teste de mesa em cada um dos exemplos abaixo.</p>
<p>a) (exemplo respondido!)</p>
<p>int[] v = new int[3];<br />
for(int i=0;i&lt;3;i++) {<br />
&nbsp; v[i] = i*i;<br />
}</p>
<table border="1">
<tbody>
<tr>
<td>i</td>
<td>a[0]</td>
<td>a[1]</td>
<td>a[2]</td>
<td>a.length</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">0</span></td>
<td>0</td>
<td><span style="text-decoration: line-through;">0</span></td>
<td><span style="text-decoration: line-through;">0</span></td>
<td>3</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">1</span></td>
<td>&nbsp;</td>
<td>1</td>
<td>4</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><span style="text-decoration: line-through;">2</span></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>3</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<p>b)</p>
<p>int [] v = new int[4];<br />
int a = 1;<br />
for(int i=1;i&lt;v.length;i++) {<br />
&nbsp; a = a * i;<br />
&nbsp; v[i] = a;<br />
}</p>
<p>c)</p>
<p>int [] v = new int[4];<br />
for(int i=0;i&lt;v.length;i++) {<br />
&nbsp; if(i%2==0) {<br />
&nbsp;&nbsp;&nbsp; v[i] = i;<br />
&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp; v[i] = -i;<br />
&nbsp; }<br />
}</p>
<p>d)</p>
<p>int [] v1 = {4, 5, 6};<br />
int [] v2 = { 1, 2, 3};<br />
for(int i=0;i&lt;v1.length;i++) {<br />
&nbsp; v1[i] = v1[i] + v2[i];<br />
}</p>
<p>* M) Observe cada um dos códigos a seguir. Cada um deles implementa um programa diferente e que faz pouco sentido individualmente.</p>
<p>Transforme o código fornecido em um código que utilize vetores. Ou seja, algumas das variáveis devem ser transformadas em vetores.</p>
<p>a) (exemplo respondido!)</p>
<p>&nbsp;</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoA.png"><img class="alignnone size-full wp-image-910" title="exercicioLCodigoA" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoA.png" alt="exercicioLCodigoA" width="611" height="546" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index14.html">Executar!</a></p>
<p>RESPOSTA:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoAResp.png"><img class="alignnone size-full wp-image-915" title="exercicioLCodigoAResp" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoAResp.png" alt="exercicioLCodigoAResp" width="628" height="690" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index15.html">Executar!</a></p>
<p>b)</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoB.png"><img class="alignnone size-full wp-image-919" title="exercicioLCodigoB" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoB.png" alt="exercicioLCodigoB" width="517" height="366" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index16.html">Executar!</a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index17.html">Resultado Esperado!</a></p>
<p>c)</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoC.png"><img class="alignnone size-full wp-image-925" title="exercicioLCodigoC" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/exercicioLCodigoC.png" alt="exercicioLCodigoC" width="975" height="563" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index18.html">Executar!<br />
</a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index19.html">Resultado esperado!</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/06/23/exercicio-de-revisao-para-prova-2o-bimestre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Aula 12 &#8211; Vetores</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/06/16/aula-12-vetores/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/06/16/aula-12-vetores/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 19:26:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[vetores]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=864</guid>
		<description><![CDATA[Objetivo
As variáveis criadas até agora permitiram o armazenamento de apenas um valor de cada vez. Vetores permitem a definição de variáveis com o poder de armazenar múltiplos valores. Voltando à metáfora das gavetas, um vetor corresponde a uma gaveta com inúmeras subdivisões.
O objetivo deste capítulo é definir como podemos utilizar vetores em nossos programas e [...]]]></description>
			<content:encoded><![CDATA[<h2>Objetivo</h2>
<p>As variáveis criadas até agora permitiram o armazenamento de apenas um valor de cada vez. Vetores permitem a definição de variáveis com o poder de armazenar múltiplos valores. Voltando à metáfora das gavetas, um vetor corresponde a uma gaveta com inúmeras subdivisões.</p>
<p>O objetivo deste capítulo é definir como podemos utilizar vetores em nossos programas e descreve inúmeras situações nas quais os vetores são essenciais.</p>
<h2>Sintaxe introduzida</h2>
<ul>
<li>Funções de manipulação de vetor:
<ul>
<li><a href="http://www.processing.org/reference/append_.html">append</a>: Aumenta um vetor em um elemento colocando um novo elemento no fim do vetor;</li>
<li><a href="http://www.processing.org/reference/arrayCopy_.html">arrayCopy</a>: Copia um vetor ou parte deve em outro;</li>
<li><a href="http://www.processing.org/reference/concat_.html">concat</a>: Concatena (junta) dois vetores;</li>
<li><a href="http://www.processing.org/reference/expand_.html">expand</a>: Aumenta um vetor para o dobro de seu tamanho ou para um tamanho especificado;</li>
<li><a href="http://www.processing.org/reference/reverse_.html">reverse</a>: Inverte um vetor;</li>
<li><a href="http://www.processing.org/reference/shorten_.html">shorten</a>: Elimina o último elemento de um vetor;</li>
<li><a href="http://www.processing.org/reference/sort_.html">sort</a>: Ordena um vetor;</li>
<li><a href="http://www.processing.org/reference/splice_.html">splice</a>:&nbsp; Coloca um vetor ou elemento dentro de um outro;</li>
<li><a href="http://www.processing.org/reference/subset_.html">subset</a>: Retorna um vetor de elementos de dentro de um vetor já existente.</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<h2>Declarando e criando vetores</h2>
<p>Variáveis do tipo vetor podem ser declaradas da mesma maneira que se declara qualquer outro tipo de dado. A diferença é que após o nome do tipo de dado, deve-se colocar um sinal de abertura e de fechamento de colchetes ([ e ]).</p>
<p>Dessa forma, os seguintes códigos declaram vetores:</p>
<p>int[] posicao;</p>
<p>float[] tamanho;</p>
<p>color[] cor;</p>
<p>string[] nome;</p>
<p>Depois da declaração de uma variável como vetor, ele não pode ser utilizado ainda. É necessária a criação do vetor informando quantas posições ele disponibiliza para uso. Neste momento, parte da memória do computador é separada para cada posição do vetor. A palavra chave new é usada neste processo.</p>
<p>No código abaixo, por exemplo, o vetor posição é criado com 5 posições:</p>
<p>int[] posicao;</p>
<p>posicao = new int[5];</p>
<p>Também é possível declarar e criar um vetor em uma mesma linha. No exemplo abaixo, é criado um vetor cor com 10 posições.</p>
<p>color[] cor = new color[10];</p>
<p>Após o processo de criação de um vetor na memória cada uma de suas posições está vazia pode ter um valor indefinido ou um valor padrão. Visualmente pode-se representar cada uma das posições como se fosse uma variável independente.</p>
<p>Por exemplo, após a execução do código a seguir, a representação na memória do computador é a de 4 variáveis independentes nomeadas: tam[0], tam[1], tam[2], tam[3]. No Processing os vetores iniciam-se na posição zero.</p>
<h2>Atribuição de valores a uma posição de um vetor</h2>
<p>Para colocar um valor dentro de uma variável de vetor, ou seja, preencher cada posição com uma atribuição pode-se utilizar o nome do vetor e a posição desejada entre colchetes (&#8221;[" e "]&#8220;) seguida pelo sinal de recebe (&#8221;=&#8221;).</p>
<p>Por exemplo:</p>
<p>int[] dado = new int[3];</p>
<p>dado[0] = 5;</p>
<p>dado[1] = 3;</p>
<p>dado[2] = 2;</p>
<p><span style="color: #ff0000;"><br />
</span></p>
<p>Outra possibilidade é substituir a criação do vetor com o operador new por uma lista separada por vírgulas e delimitada por chaves:</p>
<p>int[] dado = {3, 1, 2};</p>
<h2>Limites de um vetor</h2>
<p>Já que um vetor começa na posição zero, a tentativa de acessá-lo fora desta posição levanta um erro de execução. Este erro é bastante comum para o programador iniciante.</p>
<p>Por exemplo, a execução do código abaixo, pára o programa e exibe o erro <strong>ArrayIndexOutOfBoundsException</strong>.</p>
<p>int[] val = new int[2];</p>
<p>val[0] = 1; // Tudo ok</p>
<p>val[1] = 2; // Tudo ok</p>
<p>val[2] = 3; // ERRO!</p>
<p>Para obter o tamanho de um vetor a qualquer momento pode-se utilizar a propriedade length, acessível através do operador ponto (&#8221;.&#8221;).</p>
<p>O fragmento demonstra o uso desta propriedade:</p>
<p>int[] x = {10, 20, 30};</p>
<p>int[] y = {30, 40, 50,60};</p>
<p>int[] z = new int[5];</p>
<p>int[] w;</p>
<p>println(x.length); // Exibe 3</p>
<p>println(y.length); // Exibe 4</p>
<p>println(z.length); // Exibe 5</p>
<p>// Se a linha a seguir for descomentada, um erro é levantado</p>
<p>// println(w.length);</p>
<h2>Percorrendo vetores</h2>
<p>Geralmente a estrutura for é utilizada para percorrer vetores. A inicialização se dá com o valor zero, o limite é até o tamanho do vetor e a iteração é feita item a item.</p>
<p>Vale, portanto, o esquema:</p>
<p>for(int variavel = 0; variavel &lt; vetor.length; variavel++)</p>
<p>{</p>
<p>&#8230;vetor[variavel]&#8230;</p>
<p>}</p>
<p>Observe que o atalho &#8220;variavel++&#8221; tem o mesmo resultado que variavel=variavel+1, ou seja, a cada iteração, uma posição diferente do vetor é acessada.</p>
<p>Abaixo, uma sequencia de linhas é desenhada com o vetor estabelecendo sua posição inicial.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_linhas.png"><img class="alignnone size-full wp-image-877" title="vetores_linhas" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_linhas.png" alt="vetores_linhas" width="522" height="306" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index8.html">Executar!</a></p>
<p>No exemplo a seguir uma série de elipses são desenhadas a partir das informações do vetor.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_diametro_elipse2.png"><img class="alignnone size-full wp-image-873" title="vetores_diametro_elipse2" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_diametro_elipse2.png" alt="vetores_diametro_elipse2" width="545" height="626" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index7.html">Executar!</a></p>
<p>Os dados de um vetor também podem ser alterados com a utilização da estrutura for. Esta estratégia é útil para o armazenamento do resultado da execução de cálculos.</p>
<p>No exemplo abaixo, o vetor d é calculado ao carregar o programa no método setup e é utilizado apenas no método draw.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_aleatorios.png"><img class="alignnone size-full wp-image-881" title="vetores_aleatorios" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_aleatorios.png" alt="vetores_aleatorios" width="376" height="387" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index9.html">Executar!</a></p>
<p>Vetores também podem ser úteis para armazenar valores que representam a posição de objetos. O programa seguinte demonstra os objetos tendo sua posição alterada a partir da posição do mouse.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_aleatorios2.png"><img class="alignnone size-full wp-image-885" title="vetores_aleatorios2" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_aleatorios2.png" alt="vetores_aleatorios2" width="609" height="742" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index10.html">Executar!</a></p>
<p>A posição ou estado do mouse também podem ser armazenados utilizando-se vetores.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_mouse.png"><img class="alignnone size-full wp-image-889" title="vetores_mouse" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_mouse.png" alt="vetores_mouse" width="640" height="576" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index11.html">Executar!</a></p>
<h2>Funções para manipulação de vetores</h2>
<p>A manipulação de vetores com o objetivo de aumentar, diminuir, ordenar e apagar um vetor pode ser feita diretamente através de estruturas de repetição e atribuições. Esta abordagem, porém, é trabalhosa e propensa a erros. Sugere-se, portanto, o uso das funções de manipulação de vetores disponibilizadas pela biblioteca padrão. As funções do Processing são listadas a seguir:</p>
<ul>
<li><a href="http://www.processing.org/reference/append_.html">append</a>: Aumenta um vetor em um elemento colocando um novo elemento no fim do vetor;</li>
<li><a href="http://www.processing.org/reference/arrayCopy_.html">arrayCopy</a>: Copia um vetor ou parte deve em outro;</li>
<li><a href="http://www.processing.org/reference/concat_.html">concat</a>: Concatena (junta) dois vetores;</li>
<li><a href="http://www.processing.org/reference/expand_.html">expand</a>: Aumenta um vetor para o dobro de seu tamanho ou para um tamanho especificado;</li>
<li><a href="http://www.processing.org/reference/reverse_.html">reverse</a>: Inverte um vetor;</li>
<li><a href="http://www.processing.org/reference/shorten_.html">shorten</a>: Elimina o último elemento de um vetor;</li>
<li><a href="http://www.processing.org/reference/sort_.html">sort</a>: Ordena um vetor;</li>
<li><a href="http://www.processing.org/reference/splice_.html">splice</a>:&nbsp; Coloca um vetor ou elemento dentro de um outro;</li>
<li><a href="http://www.processing.org/reference/subset_.html">subset</a>: Retorna um vetor de elementos de dentro de um vetor já existente.</li>
</ul>
<h3>Função append: Aumentar um vetor em um elemento</h3>
<p>int[] x = { 1, 2, 3};<br />
println(x); // Exibe 1, 2, 3<br />
x = append(x, 4);<br />
println(x); // Exibe 1, 2, 3, 4</p>
<h3>Função arrayCopy: Copiar um vetor em outro</h3>
<p>int[] x = {1, 2, 0, 0, 5};<br />
int[] y = {3, 4};<br />
arrayCopy(y, 0, x, 2, 2);<br />
println(x); // Exibe 1, 2, 3, 4, 5</p>
<h3>Função concat: Concatenar vetores</h3>
<p>int[] x = {1, 2, 3};<br />
int[] y = {4, 5, 6};<br />
int[] z;<br />
z = concat(x,y);<br />
println(z);</p>
<h3>Função expand: Aumentar um vetor</h3>
<p>int[] x = {1, 2, 3};<br />
// Descomentar essa linha para exibir erro!<br />
// println(x[3]);<br />
println(x.length); // Exibe 1, 2, 3<br />
x = expand(x, 4);<br />
println(x[3]);</p>
<h3>Função reverse: Inverter um vetor</h3>
<p>int[] x = {1, 2, 3, 4, 5, 6};<br />
println(x); // Exibe 1, 2, 3, 4, 5, 6<br />
x = reverse(x);<br />
println(x); // Exibe 6, 5, 4, 3, 2, 1</p>
<h3>Função shorten: Eliminar o último elemento</h3>
<p>int[] x = {1, 2, 3, 4, 5};<br />
println(x); // Exibe 1, 2, 3, 4, 5<br />
x = shorten(x);<br />
println(x); // Exibe 1, 2, 3, 4</p>
<h3>Função sort: Ordenar um vetor</h3>
<p>int[] x = {5, 4, 1, 3, 2};<br />
println(x); // Exibe 5, 4, 1, 3, 2<br />
x = sort(x);<br />
println(x); // Exibe 1, 2, 3, 4, 5</p>
<h3>Função splice: Colocar vetor dentro de outro</h3>
<p>int[] x = {1, 2, 5};<br />
int[] y = {3, 4};<br />
int[] z;<br />
z = splice(x, y, 2);<br />
println(z); // Exibe 1, 2, 3, 4, 5</p>
<h3>Função subset: Retorna um vetor de elementos de dentro de um vetor já existente</h3>
<p>int[] x = {1, 2, 3, 4, 5, 6};<br />
int[] y = subset(x, 2, 3);<br />
println(y); // Exibe 3, 4, 5</p>
<h3>Exemplos de uso das funções de manipulação de vetores</h3>
<p>A função append pode ser usada para armazenar a posição do mouse. No programa abaixo, o fragmento <strong>x = append(x, mouseX) </strong>vai armazenando no fim do vetor a posição em x do mouse.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_mouse2.png"><img class="alignnone size-full wp-image-894" title="vetores_mouse2" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_mouse2.png" alt="vetores_mouse2" width="629" height="706" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index12.html">Executar!</a></p>
<p>Em mais um exemplo, o vetor armazena as posições do mouse e, a cada iteração a instrução x = subset(x, 1);&nbsp; elimina o primeiro elemento do vetor. Desta forma, o elemento que na iteração anterior estava na posição 2, na seguinte vai para a 1 e assim sucessivamente.</p>
<p>Esta estratégia implementa uma trilha atrás do cursor.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_mouse3.png"><img class="alignnone size-full wp-image-899" title="vetores_mouse3" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/vetores_mouse3.png" alt="vetores_mouse3" width="578" height="597" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index13.html">Executar!</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/06/16/aula-12-vetores/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Código do jogo do avião</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/06/10/codigo-do-jogo-do-aviao/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/06/10/codigo-do-jogo-do-aviao/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 20:35:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=862</guid>
		<description><![CDATA[* Turma de Terça.
int yAv;
PImage av, cenario; // Vars para aviao e cenário
void setup() {
  size(600,200);// Tamanho da tela
  colorMode(HSB, 360, 100, 100); // Escolhendo a notação de cor HSB
  yAv = height/2; // Posição inicial
  av  = loadImage(”aviao.png”); // Carreguei imagem
  background(244, 77, 94);
  for(int i=0;i]]></description>
			<content:encoded><![CDATA[<p>* Turma de Terça.<br />
int yAv;<br />
PImage av, cenario; // Vars para aviao e cenário<br />
void setup() {<br />
  size(600,200);// Tamanho da tela<br />
  colorMode(HSB, 360, 100, 100); // Escolhendo a notação de cor HSB<br />
  yAv = height/2; // Posição inicial<br />
  av  = loadImage(”aviao.png”); // Carreguei imagem<br />
  background(244, 77, 94);<br />
  for(int i=0;i<600;i++){ // i começa com zero, vai até 600, de 1 em 1<br />
    stroke(147,77,94);<br />
    line(i, random(170, 180), i, height);<br />
  }<br />
  save(”cenario.png”); // Salva em disco o que foi desenhado!<br />
  cenario = loadImage(”cenario.png”);<br />
}<br />
void draw() {<br />
  background(244, 77, 94);<br />
  image(cenario, -(frameCount % width), 0); // Desenha 1o o cenário<br />
  image(cenario, width &#8211; (frameCount % width), 0);<br />
  image(av, 10, yAv);   // Desenha depois o avião!<br />
  yAv = yAv + 1;<br />
  if(keyPressed) {<br />
    yAv = yAv &#8211; 2;<br />
  }<br />
  // Se o meu sensor em (10, yAv+40) NÃO estiver<br />
  // no céu (cor 244, 77, 94), PAAAAARA tudo (noLoop)<br />
  if(get(10, yAv+40)!=color(244,77,94)){<br />
    noLoop();<br />
  }<br />
  point(10, yAv + 40);</p>
<p>}</p>
<p>* Turma de quarta<br />
PImage av, cen; // Variável que representa a imagem avião e cenario<br />
int yAv;   // Variável q representa a posição do avião em y<br />
void setup() {<br />
 size(600, 200); // Define o tamanho da tela<br />
 colorMode(HSB,360,100,100); // Escolher o modelo de cor<br />
 av  = loadImage(”aviao.png”); // Carrega a imagem “aviao.png”<br />
 yAv = height/2; // Coloca o avião no meio da tela<br />
 // Criação do cenário!<br />
 background(250,96,99);<br />
 stroke(129,96,80);<br />
 for(int i=0;i<600;i=i+1){ // i começa em 0, vai até 599, vai de 1 em 1<br />
   line(i, random(160,180), i, height);<br />
 }<br />
 save(”cenario.png”);<br />
 cen = loadImage(”cenario.png”);<br />
}<br />
void draw() {<br />
  background(250, 96, 99);<br />
  image(cen,-frameCount,0);<br />
  image(cen,width-frameCount,0);<br />
  image(av, 20, yAv); // Exibe a imagem<br />
  yAv = yAv + 1; // A gravidade manda o avião para baixo<br />
  if(keyPressed) { // Se qualquer tecla for pressionada<br />
    yAv = yAv &#8211; 2; // Vai para cima<br />
  }<br />
  // Se o sensor estiver sobre a cor verde!<br />
  // Bateu!<br />
  if(get(50,yAv+40)==color(129,96,80))  {<br />
    noLoop(); // Para a execução!<br />
  }<br />
  point(50, yAv + 40);<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/06/10/codigo-do-jogo-do-aviao/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Código aula 3/6</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/06/10/codigo-aula-36/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/06/10/codigo-aula-36/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 20:32:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=856</guid>
		<description><![CDATA[PImage av, cen; // Variável que representa a imagem avião e cenario
int yAv;&#160;&#160; // Variável q representa a posição do avião em y
void setup() {
&#160;size(600, 200); // Define o tamanho da tela
&#160;colorMode(HSB,360,100,100); // Escolher o modelo de cor
&#160;av&#160; = loadImage(&#8221;aviao.png&#8221;); // Carrega a imagem &#8220;aviao.png&#8221;
&#160;yAv = height/2; // Coloca o avião no meio da tela
&#160;// [...]]]></description>
			<content:encoded><![CDATA[<p>PImage av, cen; // Variável que representa a imagem avião e cenario<br />
int yAv;&nbsp;&nbsp; // Variável q representa a posição do avião em y<br />
void setup() {<br />
&nbsp;size(600, 200); // Define o tamanho da tela<br />
&nbsp;colorMode(HSB,360,100,100); // Escolher o modelo de cor<br />
&nbsp;av&nbsp; = loadImage(&#8221;aviao.png&#8221;); // Carrega a imagem &#8220;aviao.png&#8221;<br />
&nbsp;yAv = height/2; // Coloca o avião no meio da tela<br />
&nbsp;// Criação do cenário!<br />
&nbsp;background(250,96,99);<br />
&nbsp;stroke(129,96,80);<br />
&nbsp;for(int i=0;i&lt;600;i=i+1){ // i começa em 0, vai até 599, vai de 1 em 1<br />
&nbsp;&nbsp; line(i, random(160,180), i, height);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;}<br />
&nbsp;save(&#8221;cenario.png&#8221;);<br />
&nbsp;cen = loadImage(&#8221;cenario.png&#8221;);<br />
}<br />
void draw() {<br />
&nbsp; background(250, 96, 99);<br />
&nbsp; image(cen,-frameCount,0);<br />
&nbsp; image(cen,width-frameCount,0);<br />
&nbsp; image(av, 20, yAv); // Exibe a imagem<br />
&nbsp; yAv = yAv + 1; // A gravidade manda o avião para baixo<br />
&nbsp; if(keyPressed) { // Se qualquer tecla for pressionada<br />
&nbsp;&nbsp;&nbsp; yAv = yAv &#8211; 2; // Vai para cima<br />
&nbsp; }<br />
&nbsp; // Se o sensor estiver sobre a cor verde!<br />
&nbsp; // Bateu!<br />
&nbsp; if(get(50,yAv+40)==color(129,96,80))&nbsp; {<br />
&nbsp;&nbsp;&nbsp; noLoop(); // Para a execução!<br />
&nbsp; }<br />
&nbsp; point(50, yAv + 40);<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/06/10/codigo-aula-36/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exercício P06 &#8211; Estrutura de Repetição e Cores</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/06/02/exercicio-p06-estrutura-de-repeticao-e-cores/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/06/02/exercicio-p06-estrutura-de-repeticao-e-cores/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 18:44:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[avião]]></category>
		<category><![CDATA[cores]]></category>
		<category><![CDATA[exercícioP06]]></category>
		<category><![CDATA[games]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=847</guid>
		<description><![CDATA[Estes exercícios são para realização em sala e, principalmente, em sua casa.
Após a implementação destes exercícios
A) No exercício P03, letra N, foi solicitado que você criasse um editor gráfico.
Utilizando os conceitos aprendidos na aula de hoje coloque a possibilidade de utilização de cores em seu editor.
B) O gênero dos jogos de um botão só (one [...]]]></description>
			<content:encoded><![CDATA[<p>Estes exercícios são para realização em sala e, <strong>principalmente</strong>, em sua casa.</p>
<p>Após a implementação destes exercícios</p>
<p>A) No <a href="http://www.brunocampagnolo.com/2009ip/2009/03/31/exercicio-p03-tudo-ate-agora/">exercício P03</a>, letra N, foi solicitado que você criasse um editor gráfico.</p>
<p>Utilizando os conceitos aprendidos na <a href="http://www.brunocampagnolo.com/2009ip/2009/06/02/aula-10-cores/">aula de hoje</a> coloque a possibilidade de utilização de cores em seu editor.</p>
<p>B) O gênero dos jogos de um botão só (<a href="http://www.gamasutra.com/features/20050602/green_pfv.htm">one button games</a>) é um dos principais gêneros de sucesso em <a href="http://www.digitalchocolate.com/games/mobile/johnny-crash-does-texas.html">dispositivos móveis</a> ou para <a href="http://www.sfcave.com/javaCave.php">jogos casuais de acesso rápido</a>.</p>
<p>Crie um jogo no qual você controla um objeto voador (avião, helicóptero ou semelhante&#8230;) dentro de um ambiente (caverna, túnel, céu, etc) com obstáculos.</p>
<p>Use a imagem que quiser para seu avião, mas se quiser, aproveite esta:</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/aviao.png"><img class="alignnone size-full wp-image-851" title="aviao" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/aviao.png" alt="aviao" width="54" height="36" /></a></p>
<p>Quando você pressiona qualquer tecla (mouse, teclado, etc) o objeto sobe. Por padrão, a gravidade leva o objeto para baixo.</p>
<p>Você deve desviar dos obstáculos. Sua pontuação é dada pela distância máxima que conseguir percorrer.</p>
<p>Seu cenário deve ser gerado de maneira procedural, ou seja, o cenário deve ser gerado de maneira aleatória e <strong>não a partir de uma imagem externa</strong>. Além do uso de apenas um botão para controle, esta é a sua única outra restrição! Use sua criatividade para incrementar seu jogo!</p>
<p>Para entender melhor este estilo do jogo dê uma olhada em alguns exemplos:</p>
<p><a href="http://onemansblog.com/wp-content/uploads/2007/06/copter.swf">Exemplo 1</a></p>
<p><a href="http://www.sfcave.com/javaCave.php">Exemplo 2</a></p>
<p><a href="http://code.google.com/p/cave9/wiki/AboutCave9">Exemplo 3</a></p>
<p>Entrega do exercício no link: <a href="http://spreadsheets.google.com/viewform?formkey=ckk5dWFZUDFrWmpFNWIwd01mbFo2RFE6MA..">http://spreadsheets.google.com/viewform?formkey=ckk5dWFZUDFrWmpFNWIwd01mbFo2RFE6MA..</a></p>
<p><iframe src="http://spreadsheets.google.com/embeddedform?key=rI9uaYP1kZjE5b0wMflZ6DQ" width="500" height="769" frameborder="0" marginheight="0" marginwidth="0">Carregando&#8230;</iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/06/02/exercicio-p06-estrutura-de-repeticao-e-cores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aula 10 &#8211; Cores</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/06/02/aula-10-cores/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/06/02/aula-10-cores/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 18:30:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[aulas]]></category>
		<category><![CDATA[aula10]]></category>
		<category><![CDATA[cores]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=812</guid>
		<description><![CDATA[Objetivo
Nas últimas semanas, trabalhamos com a estrutura de repetição. Tal estrutura, permite a execução de diversas linhas de código mais de uma vez. O capítulo atual retorna o trabalho com as estruturas da programação gráfica.
Agora, vamos aplicar a estrutura de repetição com diversas funções da programação gráfica. Desta forma, a maior parte dos exemplos dos [...]]]></description>
			<content:encoded><![CDATA[<h1>Objetivo</h1>
<p>Nas últimas semanas, trabalhamos com a estrutura de repetição. Tal estrutura, permite a execução de diversas linhas de código mais de uma vez. O capítulo atual retorna o trabalho com as estruturas da programação gráfica.</p>
<p>Agora, vamos aplicar a estrutura de repetição com diversas funções da programação gráfica. Desta forma, a maior parte dos exemplos dos próximos capítulos utiliza a estrutura de repetição misturada com diversos conceitos da programação gráfica. Iniciaremos hoje com a representação de cores para o Processing.</p>
<h1>Sintaxe</h1>
<p>Esta seção serve como resumo e referência aos comandos explorados neste capítulo. Pule este tópico se for sua primeira leitura.</p>
<ul>
<li>background (<a href="http://processing.org/reference/background_.html">en</a>/<a href="http://www.dainf.ct.utfpr.edu.br/~merkle/processing/reference/ptBR/background_.html">pt</a>): define a cor de fundo da tela;</li>
<li>fill (<a href="http://processing.org/reference/fill_.html">en</a>/<a href="http://www.dainf.ct.utfpr.edu.br/~merkle/processing/reference/ptBR/fill_.html">pt</a>): define a cor de preenchimento das formas geométricas;</li>
<li>stroke (<a href="http://processing.org/reference/stroke_.html">en </a>/ <a href="http://www.dainf.ct.utfpr.edu.br/~merkle/processing/reference/ptBR/stroke_.html">pt</a>): define a cor de desenho de linhas e bordas;</li>
<li>color (<a href="http://processing.org/reference/color_datatype.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/color.html">pt</a>): tipo de dado usado para armazenar cores;</li>
<li>colorMode (<a href="http://processing.org/reference/colorMode_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/colorMode_.html">pt</a>): altera a maneira que o Processing interpreta as cores: RGB ou HSB;</li>
<li>get (<a href="http://processing.org/reference/get_.html">en</a> / <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/get_.html">pt</a>): retorna a cor de um pixel, ou retorna um pedaço de uma imagem;</li>
<li>set (<a href="http://processing.org/reference/set_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/set_.html">pt</a>): altera a cor de um pixel, ou escreve uma imagem diretamente na tela;</li>
<li> save (<a href="http://processing.org/reference/save_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/save_.html">pt</a>): salva em disco o que está sendo mostrado na tela;</li>
<li>saveFrame (<a href="http://processing.org/reference/saveFrame_.html">en</a> / <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/saveFrame_.html">pt</a>): salva em disco uma seqüencia de imagens.</li>
</ul>
<h1>Cores</h1>
<p>No Processing as cores são definidas através de parâmetros das funções background, fill e stroke:</p>
<ul>
<li>background (<a href="http://processing.org/reference/background_.html">en</a>/<a href="http://www.dainf.ct.utfpr.edu.br/~merkle/processing/reference/ptBR/background_.html">pt</a>): define a cor de fundo da tela;</li>
<li>fill (<a href="http://processing.org/reference/fill_.html">en</a>/<a href="http://www.dainf.ct.utfpr.edu.br/~merkle/processing/reference/ptBR/fill_.html">pt</a>): define a cor de preenchimento das formas geométricas;</li>
<li>stroke (<a href="http://processing.org/reference/stroke_.html">en </a>/ <a href="http://www.dainf.ct.utfpr.edu.br/~merkle/processing/reference/ptBR/stroke_.html">pt</a>): define a cor de desenho de linhas e bordas;</li>
</ul>
<p>Quando as funções acima são chamadas com apenas um parâmetro, a cor escolhida é uma tonalidade de cinza, sendo o valor zero igual ao preto e o branco correspondente ao valor 255.</p>
<p>No exemplo abaixo, a cor do desenho da linha é variado de 0 até 255. Desta forma, é desenhada uma linha a cada iteração e a alteração da cor da linha cria um efeito de degradê.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor01.jpg"><img class="alignnone size-full wp-image-817" title="cor01" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor01.jpg" alt="cor01" width="326" height="402" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index.html">Executar!</a></p>
<p>O valor da cor, porém, também pode ser representado por três parâmetros. Neste caso, por padrão o Processing utiliza a especificação de cores RGB. Nesta especificação, uma cor é representada pela mistura aditiva das cores vermelho (<span style="color: #ff0000;">R</span>ED), verde (<span style="color: #008000;">G</span>REEN) e azul (<span style="color: #0000ff;">B</span>LUE).</p>
<p>A seguir, três círculos são desenhados um ao lado do outro com as cores vermelho, verde e azul como preenchimentos respectivos.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor02.png"><img class="alignnone size-full wp-image-822" title="cor02" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor02.png" alt="cor02" width="456" height="395" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index1.html">Executar!</a></p>
<h2>Transparência</h2>
<p>Observa-se que as cores especificadas são opacas. Com o uso de dois ou quatro parâmetros é possível definir a transparência de uma cor. O valor zero indica que a cor é completamente transparente e o valor 255 é o padrão que indica a completa opacidade.</p>
<p>No exemplo abaixo, o parâmetro de transparência permite que se crie novas cores dependendo da combinação entre formas com transparência.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor03.png"><img class="alignnone size-full wp-image-823" title="cor03" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor03.png" alt="cor03" width="461" height="454" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index2.html">Executar!</a></p>
<p>As informações sobre uma cor podem ser armazenadas em variáveis através do tipo de dado color.</p>
<p>Por exemplo, a linha color amarelo = color(230, 237, 30), cria uma variável chamada amarelo que representa esta cor.</p>
<p>&nbsp;</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor04.png"><img class="alignnone size-full wp-image-827" title="cor04" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor04.png" alt="cor04" width="394" height="290" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index3.html">Executar!</a></p>
<h2>Notação HSB</h2>
<p>Embora o padrão de cores no Processing seja o RGB também é possível trabalhar com cores nas notações hexadecimal e HSB. A primeira, popular entre os desenvolvedores web codifica os números entre zero e 255 como dois dígitos de zero a FF. Nesta base, os números de zero até quinze são representados de zero a nove e de A até F.</p>
<p>Por exemplo, a cor RGB com vermelho igual a 255, verde igual a 255 e azul igual a 255 é representada em hexadecimal por #FFFFFF.</p>
<p>A notação HSB (Hue, Saturation, Brightness) define as cores em termos de tonalidade, saturação e brilho. O valor de tonalidade (hue) vai de zero até 360 abrangendo todas as cores do espectro. A saturação vai de zero até 100% e indica a pureza de uma cor. Quanto menor a pureza, mais com tons de cinza a cor aparecerá. O brilho indica a relação entre o claro e o escuro e vai de zero a 100%, sendo o 100% representando o maior brilho.</p>
<p>Para selecionar o uso da notação HSB é necessária a chamada à função colorMode (<a href="http://processing.org/reference/colorMode_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/colorMode_.html">pt</a>). Tal função pode aceitar como parâmetros: o tipo de modelo de cor, a escala utilizada para a tonalidade, a escala usada para a saturação e a escala do brilho.</p>
<p>No exemplo abaixo, a saturação e o brilho são constantes mas a tonalidade varia.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor05.png"><img class="alignnone size-full wp-image-831" title="cor05" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor05.png" alt="cor05" width="435" height="528" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index4.html">Executar!</a></p>
<p>A escolha de uma cor pode ser facilitada através do uso da ferramenta seletor de cor, acessível pelo menu Tools &gt; Color Selector.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/colorselector.png"><img class="alignnone size-full wp-image-836" title="colorselector" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/colorselector.png" alt="colorselector" width="433" height="330" /></a></p>
<h2>Cor de um pixel</h2>
<p>Também é possível obter a cor de um pixel contido em uma posição específica da tela, ou trocar esta cor. Para obter a cor de um pixel através da sua posição em x e y, pode-se utilizar a função get (<a href="http://processing.org/reference/get_.html">en</a> / <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/get_.html">pt</a>) .</p>
<p>O caminho contrário, ou seja, a alteração de um pixel em um local específico da tela pode ser feito através da função set  (<a href="http://processing.org/reference/set_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/set_.html">pt</a>).</p>
<p>Abaixo, um exemplo de uso da função set para geração de uma textura procedural.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor06.png"><img class="alignnone size-full wp-image-837" title="cor06" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor06.png" alt="cor06" width="589" height="510" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index5.html">Executar!</a></p>
<p>No fragmento a seguir, a cor de um retângulo é escolhida a partir do seletor também de maneira procedural.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor07.png"><img class="alignnone size-full wp-image-841" title="cor07" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor07.png" alt="cor07" width="589" height="551" /></a></p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/index6.html">Executar!</a></p>
<h2>Salvando o resultado</h2>
<p>O resultado de nossos programas fica cada vez mais interessante. É possível salvar este resultado em um arquivo diretamente no Processing. Para salvar a imagem sendo exibida na janela de visualização em um momento exato pode-se utilizar a função save (<a href="http://processing.org/reference/save_.html">en </a>/ <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/save_.html">pt</a>).</p>
<p>A imagem será armazenada na pasta do projeto, acessível através do menu Sketch &gt; Show Sketch Folder (CTRL + K). Os formatos possíveis são: TIF, TARGA, JPEG, PNG, dependendo da extensão escolhida. Por questões de segurança esta função não pode ser usada em ambiente Web.</p>
<p>No exemplo abaixo, a imagem &#8220;imagem.png&#8221; é criado quando o usuário clica com o botão do mouse.</p>
<p><a href="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor08.png"><img class="alignnone size-full wp-image-845" title="cor08" src="http://www.brunocampagnolo.com/2009ip/wp-content/uploads/2009/06/cor08.png" alt="cor08" width="523" height="631" /></a></p>
<p>Deve-se ter cuidado na chamada da função save dentro da função draw.&nbsp; Neste caso, o arquivo é constantemente atualizado e sobrescrito a cada frame.</p>
<p>Outra função que pode ser usada para salvar imagens de um programa é a saveFrame (<a href="http://processing.org/reference/saveFrame_.html">en</a> / <a href="http://www.dainf.cefetpr.br/~merkle/processing/reference/ptBR/saveFrame_.html">pt</a>). A cada chamada a esta função, uma sequência numerada de imagens é salva na pasta do projeto. Se a função for chamada sem parâmetro, o nome dos arquivos vai de screen-0000.tif até screen-9999.tif, sendo numerado a partir da variável frameCount.</p>
<p>No caso da parametrização, por exemplo: saveFrame(&#8221;teste###.tif&#8221;), o número de # indica o número de dígitos utilizados para armazenar a sequencia.</p>
<h2>Para Saber Mais</h2>
<p><span style="color: #000000;">Reas, Casey. Fry, Ben. Processing: A Programming Handbook for Visual Designers and Artists. p. 85-93.<br />
</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/06/02/aula-10-cores/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exercício P05 &#8211; Geração procedural de padrões e texturas</title>
		<link>http://www.brunocampagnolo.com/2009ip/2009/05/26/exercicio-p05-geracao-procedural-de-padroes-e-texturas/</link>
		<comments>http://www.brunocampagnolo.com/2009ip/2009/05/26/exercicio-p05-geracao-procedural-de-padroes-e-texturas/#comments</comments>
		<pubDate>Tue, 26 May 2009 20:29:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[exercícios]]></category>
		<category><![CDATA[exercícioP05]]></category>

		<guid isPermaLink="false">http://www.brunocampagnolo.com/2009ip/?p=796</guid>
		<description><![CDATA[Este é um exercício para realização em sala.
Uma das principais aplicações da estrutura de repetição em relação à programação gráfica é na geração procedural de texturas e padrões.
Analise os exemplos a seguir (ver mais exemplos em Reas&#160; &#8211; p. 65 a 67):
Exemplo 1:
fill(0, 76);
noStroke();
smooth();
for(int y=-10;y&#60;=100;y = y + 10) {
&#160;&#160; for(int x = -10; x&#60;=100; [...]]]></description>
			<content:encoded><![CDATA[<p>Este é um exercício para realização em sala.</p>
<p>Uma das principais aplicações da estrutura de repetição em relação à programação gráfica é na geração procedural de texturas e padrões.</p>
<p>Analise os exemplos a seguir (ver mais exemplos em Reas&nbsp; &#8211; p. 65 a 67):</p>
<p>Exemplo 1:</p>
<p>fill(0, 76);<br />
noStroke();<br />
smooth();<br />
for(int y=-10;y&lt;=100;y = y + 10) {<br />
&nbsp;&nbsp; for(int x = -10; x&lt;=100; x = x + 10)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp; ellipse(x + y / 8.0, y + x/8.0, 15 + x/2, 10);<br />
&nbsp;&nbsp; }<br />
}</p>
<p>Exemplo 2:</p>
<p>noStroke();<br />
for(int y=0; y&lt;100; y = y + 10)<br />
{<br />
&nbsp; for(int x=0;x&lt;100;x = x = x + 10)<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; fill((x+y)* 1.4);<br />
&nbsp;&nbsp;&nbsp; rect(x,y, 10, 10);<br />
&nbsp; }<br />
}</p>
<p>Exemplo 3:</p>
<p>for(float y=20; y&lt;=80; y = y * 1.2) {<br />
&nbsp; for(int x=20;x&lt;=80;x = x + 5) {<br />
&nbsp;&nbsp;&nbsp; line(x, y, x, y-2);<br />
&nbsp; }<br />
}</p>
<p>Exemplo 4:</p>
<p>for(float y=20; y&lt;=80; y = y * 1.2) {<br />
&nbsp; for(int x=20;x&lt;=80;x = x + 5) {<br />
&nbsp;&nbsp;&nbsp; line(x, y, x, y-2);<br />
&nbsp; }<br />
}</p>
<p>Exemplo 5:</p>
<p>for(int y=1;y&lt;100;y=y+10) {<br />
&nbsp; for(int x=1;x&lt;y;x=x+10) {<br />
&nbsp;&nbsp;&nbsp; line(x,y,x+6,y+6);<br />
&nbsp;&nbsp;&nbsp; line(x+6,y,x,y+6);<br />
&nbsp; }<br />
}</p>
<p>&nbsp;</p>
<p>A) Faça o teste de mesa de cada um dos exemplos um número mínimo de vezes que permita que você <strong>entenda seu funcionamento</strong>.</p>
<p>B) Baseado nos exemplos, ou criando alguma coisa do zero, gere algumas texturas e padrões procedurais utilizando estruturas de repetição.</p>
<p>Seu código deve ter um <strong>máximo </strong>de 11 &#8220;;&#8221; e um máximo de 2 &#8220;for&#8221; . Por exemplo, no exemplo 5, acima,&nbsp; temos 6 &#8220;;&#8221; e 2 &#8220;for&#8221;.</p>
<p><strong>Envie a imagem resultante de seu código na pasta indicada no Eureka. Apenas a imagem e não seu código!</strong></p>
<p>Envie seu código no link a seguir.</p>
<p><a href="http://spreadsheets.google.com/viewform?formkey=ckJ6X2U0QTNpNklNbm1GSVAyWDVjc1E6MA..">http://spreadsheets.google.com/viewform?formkey=ckJ6X2U0QTNpNklNbm1GSVAyWDVjc1E6MA..</a></p>
<p>C) Após o envio vamos fazer uma competição.</p>
<p>Você deve escolher uma imagem disponível na pasta de imagens no Eureka.</p>
<p>Recrie o código usado para gerar a imagem. Envie sua resposta no link abaixo:</p>
<p><a href="http://spreadsheets.google.com/viewform?formkey=cnVJVjRjeUl3aUVYT3Y2Y0VMSnFmZEE6MA..">http://spreadsheets.google.com/viewform?formkey=cnVJVjRjeUl3aUVYT3Y2Y0VMSnFmZEE6MA..</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brunocampagnolo.com/2009ip/2009/05/26/exercicio-p05-geracao-procedural-de-padroes-e-texturas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
