<?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>Herberth Amaral &#187; opengl</title> <atom:link href="http://herberthamaral.com/tag/opengl/feed/" rel="self" type="application/rss+xml" /><link>http://herberthamaral.com</link> <description>Software development adventures</description> <lastBuildDate>Thu, 26 Aug 2010 13:59:42 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <item><title>Hello World de Python + OpenGL</title><link>http://herberthamaral.com/2009/11/hello-world-de-python-opengl/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hello-world-de-python-opengl</link> <comments>http://herberthamaral.com/2009/11/hello-world-de-python-opengl/#comments</comments> <pubDate>Wed, 25 Nov 2009 02:51:32 +0000</pubDate> <dc:creator>Herberth Amaral</dc:creator> <category><![CDATA[Python]]></category> <category><![CDATA[hello world]]></category> <category><![CDATA[opengl]]></category> <category><![CDATA[unimontes]]></category><guid isPermaLink="false">http://herberthamaral.com/?p=10</guid> <description><![CDATA[Há quase um ano eu comecei a estudar Python e gostei de muitas características da linguagem, como o fato de ser de altíssimo nível (very high level), sintaxe clara e elegante, poderosa, portável,  super rápida,fácil aprendizado e um dos melhores: tipagem forte e dinâmica. Gostei tanto que comecei a fazer alguns trabalhos de faculdade (mais [...]]]></description> <content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;"> <a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fherberthamaral.com%2F2009%2F11%2Fhello-world-de-python-opengl%2F"> <img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fherberthamaral.com%2F2009%2F11%2Fhello-world-de-python-opengl%2F&amp;source=HerberthAmaral&amp;style=normal" height="61" width="50" /> </a></div><p>Há quase um ano eu comecei a estudar <a title="Python" href="http://www.python.org" target="_blank">Python </a>e gostei de muitas características da linguagem, como o fato de ser de altíssimo nível (<em>very high level</em>), sintaxe clara e elegante, poderosa, portável,  super rápida,fácil aprendizado e um dos melhores: tipagem forte e dinâmica.</p><p>Gostei tanto que comecei a fazer alguns trabalhos de faculdade (mais notavelmente trabalhos nas áreas de Banco de Dados, Inteligência Artificial e, recentemente, Computação Gráfica) usando Python. Para vários trabalhos eu encontrei <em>snippets </em> de código, mas não foi tão fácil para CG usando OpenGL. Por isso, resolvi postar esse pequeno exemplo de como usar Python (na versão 2.6.4) + OpenGL.</p><p>Primeiro, baixe o PyOpenGL em <a href="http://pypi.python.org/pypi/PyOpenGL">http://pypi.python.org/pypi/PyOpenGL</a>, descompacte e execute os comandos para instalar o pacote:´</p><div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$python setup.py build<br /> $sudo python setup.py install</div></div><p>Lembrando que se você estiver no Windows, o executável do Python deverá estar no seu PATH.</p><p>Instalado o pacote, é hora de fazer um teste. Abra o shell do Python e digite isso:</p><div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #66cc66;">&gt;&gt;&gt;</span> <span style="color: #ff7700;font-weight:bold;">import</span> OpenGL</div></div><p>Se não aparecer nenhuma mensagem de erro, o pacote do OpenGL foi instalado com sucesso. Agora é hora de uma pequena demonstração de uso do PyOpenGL:</p><div class="codecolorer-container python default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="python codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff7700;font-weight:bold;">from</span> OpenGL.<span style="color: #dc143c;">GL</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span><br /> <span style="color: #ff7700;font-weight:bold;">from</span> OpenGL.<span style="color: black;">GLUT</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span><br /> <br /> <span style="color: #ff7700;font-weight:bold;">def</span> display<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:<br /> &nbsp; glClear <span style="color: black;">&#40;</span>GL_COLOR_BUFFER_BIT<span style="color: black;">&#41;</span><br /> &nbsp; glBegin <span style="color: black;">&#40;</span>GL_POLYGON<span style="color: black;">&#41;</span><br /> &nbsp; glVertex2f<span style="color: black;">&#40;</span><span style="color: #ff4500;">0.4</span>,<span style="color: #ff4500;">0.4</span><span style="color: black;">&#41;</span><br /> &nbsp; glVertex2f<span style="color: black;">&#40;</span><span style="color: #ff4500;">0.01</span>,<span style="color: #ff4500;">0.01</span><span style="color: black;">&#41;</span><br /> &nbsp; glVertex2f<span style="color: black;">&#40;</span><span style="color: #ff4500;">0.3</span>,<span style="color: #ff4500;">0.6</span><span style="color: black;">&#41;</span><br /> &nbsp; glEnd<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br /> &nbsp; glFlush<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br /> glutInit <span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><br /> glutInitDisplayMode <span style="color: black;">&#40;</span>GLUT_SINGLE | GLUT_RGB<span style="color: black;">&#41;</span><br /> glutInitWindowSize <span style="color: black;">&#40;</span><span style="color: #ff4500;">250</span>,<span style="color: #ff4500;">250</span><span style="color: black;">&#41;</span><br /> glutInitWindowPosition <span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>,<span style="color: #ff4500;">0</span><span style="color: black;">&#41;</span><br /> glutCreateWindow <span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Testando o PyGraphs&quot;</span><span style="color: black;">&#41;</span><br /> glClearColor <span style="color: black;">&#40;</span><span style="color: #ff4500;">0.0</span>, <span style="color: #ff4500;">0.0</span>, <span style="color: #ff4500;">0.0</span>, <span style="color: #ff4500;">0.0</span><span style="color: black;">&#41;</span><br /> glOrtho <span style="color: black;">&#40;</span><span style="color: #ff4500;">0.0</span>, <span style="color: #ff4500;">1.0</span>, <span style="color: #ff4500;">0.0</span>, <span style="color: #ff4500;">1.0</span>, -<span style="color: #ff4500;">1.0</span>, <span style="color: #ff4500;">1.0</span><span style="color: black;">&#41;</span><br /> glutDisplayFunc<span style="color: black;">&#40;</span>display<span style="color: black;">&#41;</span><br /> glutMainLoop <span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></div></div><p>A API do OpenGL pro Python segue as mesmas convenções da API para C/C++. Então, todo e qualquer exemplo que você achar na Web em C/C++ é compatível com o Python (as vezes com algumas pequenas alterações de tipos, mas o nome das funções continua o mesmo).</p><p>Se tudo estiver ok, você deverá ver algo parecido com a seguinte figura:</p><p><img class="alignnone size-full wp-image-16" title="pygraph" src="http://herberthamaral.com/wp-content/uploads/2009/11/pygraph.png" alt="pygraph" width="267" height="289" /></p><p>Alguns links úteis:</p><ul><li><a href="http://www.opengl.org/sdk/docs/man/">http://www.opengl.org/sdk/docs/man/</a></li><li><a href="http://www.inf.pucrs.br/~manssour/OpenGL" target="_blank">www.inf.pucrs.br/~manssour/OpenGL</a></li><li><a href="http://nehe.gamedev.net" target="_blank">nehe.gamedev.net</a></li></ul><p>Acho que é isso. Até a próxima!</p><p>Sem posts relacionados.</p>]]></content:encoded> <wfw:commentRss>http://herberthamaral.com/2009/11/hello-world-de-python-opengl/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>