ebook img

Programação para Arquitectura PDF

399 Pages·2013·29.64 MB·Portuguese
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Programação para Arquitectura

Programação para Arquitectura AntónioMenezesLeitão Setembro2012 ii Conteúdo Prefácio vii 1 Programação 1 1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 LinguagensdeProgramação . . . . . . . . . . . . . . 4 1.1.2 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 ALinguagemRacket . . . . . . . . . . . . . . . . . . . . . . . 6 1.2.1 Sintaxe,SemânticaePragmática . . . . . . . . . . . . 6 1.2.2 SintaxeeSemânticadoRacket . . . . . . . . . . . . . 7 1.2.3 OAvaliador . . . . . . . . . . . . . . . . . . . . . . . . 7 1.3 ElementosdaLinguagem . . . . . . . . . . . . . . . . . . . . 8 1.3.1 Números . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.2 Combinações . . . . . . . . . . . . . . . . . . . . . . . 9 1.3.3 Indentação . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3.4 AvaliaçãodeCombinações . . . . . . . . . . . . . . . 13 1.3.5 CadeiasdeCaracteres . . . . . . . . . . . . . . . . . . 14 1.4 DefiniçãodeFunções . . . . . . . . . . . . . . . . . . . . . . . 15 1.4.1 Nomes . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.5 FunçõesPré-Definidas . . . . . . . . . . . . . . . . . . . . . . 20 1.6 AritméticaemRacket . . . . . . . . . . . . . . . . . . . . . . . 22 1.7 AvaliaçãodeNomes . . . . . . . . . . . . . . . . . . . . . . . 24 1.8 ExpressõesCondicionais . . . . . . . . . . . . . . . . . . . . . 25 1.8.1 ExpressõesLógicas . . . . . . . . . . . . . . . . . . . . 25 1.8.2 ValoresLógicos . . . . . . . . . . . . . . . . . . . . . . 25 1.9 Predicados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 1.9.1 PredicadosAritméticos . . . . . . . . . . . . . . . . . 26 1.10 OperadoresLógicos . . . . . . . . . . . . . . . . . . . . . . . . 26 1.11 Predicadoscomnúmerovariáveldeargumentos . . . . . . . 27 1.12 Reconhecedores . . . . . . . . . . . . . . . . . . . . . . . . . . 28 1.13 Selecção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.14 SelecçãoMúltipla . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.15 VariáveisLocais . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.16 VariáveisGlobais . . . . . . . . . . . . . . . . . . . . . . . . . 36 iii iv CONTEÚDO 1.17 Módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2 Modelação 39 2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2 Coordenadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.3 OperaçõescomCoordenadas . . . . . . . . . . . . . . . . . . 41 2.4 CoordenadasBidimensionais . . . . . . . . . . . . . . . . . . 44 2.5 CoordenadasPolares . . . . . . . . . . . . . . . . . . . . . . . 45 2.6 ModelaçãoGeométricaBidimensional . . . . . . . . . . . . . 49 2.7 EfeitosSecundários . . . . . . . . . . . . . . . . . . . . . . . . 53 2.8 Sequenciação . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.9 AOrdemDórica . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.10 ParametrizaçãodeFigurasGeométricas . . . . . . . . . . . . 59 2.11 Documentação . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 2.12 Depuração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 2.12.1 ErrosSintáticos . . . . . . . . . . . . . . . . . . . . . . 67 2.12.2 ErrosSemânticos . . . . . . . . . . . . . . . . . . . . . 68 2.13 ModelaçãoTridimensional . . . . . . . . . . . . . . . . . . . . 69 2.13.1 SólidosPré-Definidos . . . . . . . . . . . . . . . . . . 69 2.14 CoordenadasCilíndricas . . . . . . . . . . . . . . . . . . . . . 82 2.15 CoordenadasEsféricas . . . . . . . . . . . . . . . . . . . . . . 84 2.16 ModelaçãodeColunasDóricas . . . . . . . . . . . . . . . . . 86 2.17 ProporçõesdeVitrúvio . . . . . . . . . . . . . . . . . . . . . . 88 3 Recursão 97 3.1 Introduçãosub . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 3.2 RecursãoemArquitectura . . . . . . . . . . . . . . . . . . . . 101 3.3 DepuraçãodeProgramasRecursivos . . . . . . . . . . . . . . 108 3.4 TemplosDóricos . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.5 AOrdemJónica . . . . . . . . . . . . . . . . . . . . . . . . . . 123 3.6 RecursãonaNatureza . . . . . . . . . . . . . . . . . . . . . . 133 4 Estado 139 4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.2 Aleatoriedade . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.2.1 NúmerosAleatórios . . . . . . . . . . . . . . . . . . . 140 4.3 Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 4.4 EscolhasAleatórias . . . . . . . . . . . . . . . . . . . . . . . . 144 4.4.1 NúmerosAleatóriosFraccionários . . . . . . . . . . . 146 4.4.2 NúmerosAleatóriosnumIntervalo . . . . . . . . . . 147 4.5 PlaneamentoUrbano . . . . . . . . . . . . . . . . . . . . . . . 152 CONTEÚDO v 5 Estruturas 161 5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 5.2 Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 5.2.1 Pares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 5.2.2 RepresentaçãoGráficadePares . . . . . . . . . . . . . 165 5.3 TiposRecursivos . . . . . . . . . . . . . . . . . . . . . . . . . 166 5.4 RecursãoemListas . . . . . . . . . . . . . . . . . . . . . . . . 166 5.4.1 PredicadossobreListas . . . . . . . . . . . . . . . . . 171 5.4.2 Enumerações . . . . . . . . . . . . . . . . . . . . . . . 173 5.5 Polígonos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 5.5.1 EstrelasRegulares . . . . . . . . . . . . . . . . . . . . 176 5.5.2 PolígonosRegulares . . . . . . . . . . . . . . . . . . . 180 5.6 LinhasPoligonaiseSplines . . . . . . . . . . . . . . . . . . . . 182 5.7 Treliças . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 5.7.1 DesenhodeTreliças . . . . . . . . . . . . . . . . . . . 187 5.7.2 GeraçãodePosições . . . . . . . . . . . . . . . . . . . 192 5.7.3 TreliçasEspaciais . . . . . . . . . . . . . . . . . . . . . 197 6 Formas 203 6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 6.2 GeometriaConstrutiva . . . . . . . . . . . . . . . . . . . . . . 203 6.3 Superfícies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 6.3.1 Trifólios,QuadrifólioseOutrosFólios . . . . . . . . . 210 6.4 ÁlgebradeFormas . . . . . . . . . . . . . . . . . . . . . . . . 217 6.5 CortedeRegiões . . . . . . . . . . . . . . . . . . . . . . . . . 228 6.6 Extrusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 6.6.1 ExtrusãoSimples . . . . . . . . . . . . . . . . . . . . . 234 6.6.2 ExtrusãoaoLongodeumCaminho . . . . . . . . . . 245 6.6.3 ExtrusãocomTransformação . . . . . . . . . . . . . . 247 6.7 ColunasdeGaudí . . . . . . . . . . . . . . . . . . . . . . . . . 249 6.8 Revoluções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 6.8.1 SuperfíciesdeRevolução . . . . . . . . . . . . . . . . 253 6.8.2 SólidosdeRevolução . . . . . . . . . . . . . . . . . . . 258 6.9 InterpolaçãodeSecções . . . . . . . . . . . . . . . . . . . . . 263 6.9.1 InterpolaçãoporSecções . . . . . . . . . . . . . . . . . 263 6.9.2 InterpolaçãocomGuiamento . . . . . . . . . . . . . . 264 7 Transformações 267 7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 7.2 Translação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 7.3 Escala . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 7.4 Rotação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 7.5 Reflexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 7.6 AÓperadeSydney . . . . . . . . . . . . . . . . . . . . . . . . 272 vi CONTEÚDO 8 OrdemSuperior 283 8.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 8.2 FachadasCurvilíneas . . . . . . . . . . . . . . . . . . . . . . . 283 8.3 FunçõesdeOrdemSuperior . . . . . . . . . . . . . . . . . . . 289 8.4 FunçõesAnónimas . . . . . . . . . . . . . . . . . . . . . . . . 291 8.5 AFunçãoIdentidade . . . . . . . . . . . . . . . . . . . . . . . 297 8.6 FunçõesdeOrdemSuperiorsobreListas . . . . . . . . . . . . 300 8.6.1 Mapeamento . . . . . . . . . . . . . . . . . . . . . . . 300 8.6.2 Filtragem . . . . . . . . . . . . . . . . . . . . . . . . . 301 8.6.3 Redução . . . . . . . . . . . . . . . . . . . . . . . . . . 301 8.7 GeraçãodeModelosTridimensionais . . . . . . . . . . . . . . 303 9 RepresentaçãoParamétrica 315 9.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 9.2 ComputaçãodeFunçõesParamétricas . . . . . . . . . . . . . 316 9.3 ErrosdeArredondamento . . . . . . . . . . . . . . . . . . . . 318 9.4 Mapeamentoseenumerações . . . . . . . . . . . . . . . . . . 321 9.4.1 EspiraldeFermat . . . . . . . . . . . . . . . . . . . . . 322 9.4.2 CissóidedeDiocles . . . . . . . . . . . . . . . . . . . . 325 9.4.3 LemniscatadeBernoulli . . . . . . . . . . . . . . . . . 327 9.4.4 CurvadeLamé . . . . . . . . . . . . . . . . . . . . . . 329 9.5 Precisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.5.1 AmostragemAdaptativa . . . . . . . . . . . . . . . . 336 9.6 SuperfíciesParamétricas . . . . . . . . . . . . . . . . . . . . . 340 9.6.1 AFaixadeMöbius . . . . . . . . . . . . . . . . . . . . 341 9.7 Superfícies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 9.7.1 Helicoide . . . . . . . . . . . . . . . . . . . . . . . . . 351 9.7.2 Mola . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 9.7.3 Conchas . . . . . . . . . . . . . . . . . . . . . . . . . . 355 9.7.4 Cilindros,Cones,eEsferas . . . . . . . . . . . . . . . 357 9.8 AAdegaYsios . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 9.9 NormaisaumaSuperfície . . . . . . . . . . . . . . . . . . . . 369 9.10 ProcessamentodeSuperfícies . . . . . . . . . . . . . . . . . . 372 10 Epílogo 381 Prefácio Este livro nasceu em 2007, após um convite para leccionar uma disciplina introdutória de Programação aos alunos de Arquitectura do Instituto Su- perior Técnico (IST). A motivação original para a introdução da disciplina no curso de Arquitectura era a mesma que para muitos outros cursos: à semelhança da Matemática e da Física, a Programação tornou-se parte da formaçãobásicadequalqueralunodoIST. Comestapremissa,nãopareciaserumadisciplinaqueviesseadesper- tar grande interesse nos alunos de Arquitectura, particularmente porque era pouco clara a contribuição que ela pudesse ter para o curso. Para con- trariaressaimpressãoinicial, decidiincorporarnoprogramadadisciplina algumas aplicações da Programação em Arquitectura. Nesse sentido, fui falar com alunos e docentes de Arquitectura, e pedi-lhes que me explicas- semoquefaziamecomoofaziam. Oquevieouvifoirevelador. Apesar dos enormes progressos que as ferramentas de Computer-Aided Design (CAD) vieram trazer à profissão, a verdade é que a sua utilização continua manual, laboriosa, repetitiva, aborrecida. A elaboração de um modelo digital numa ferramenta de CAD implica uma enorme atenção ao pormenor, impedindo a concentração no fundamental: a ideia. Frequen- temente, os obstáculos encontrados acabam por forçar o Arquitecto a ter de simplificar a ideia original. Infelizmente, esses obstáculos não termi- namcomacriaçãodomodelo. Pelocontrário,agravam-sequandosurgea inevitávelnecessidadedealteraçõesaomodelo. Em geral, as ferramentas de CAD são concebidas para facilitar a reali- zaçãodastarefasmaiscomuns,emdetrimentodeoutrasmenosfrequentes oumaissofisticadas. Naverdade,paraoArquitectointeressadoemmode- larformasmaiscomplexas,aferramentadeCADpoderáapresentarsérias limitações. E,contudo,essaslimitaçõessãoapenasaparentes,poisépossí- velultrapassá-lasporintermédiodaprogramação. Aprogramaçãopermite queumaferramentadeCADsejaampliadacomnovascapacidades,elimi- nandoosobstáculosqueimpedemotrabalhodoArquitecto. A actividade da programação é intelectualmente muito estimulante, masétambémumdesafio. Implicadominarumanovalinguagem,implica adoptarumanovaformadepensar. Frequentemente,esseesforçofazmui- tos desistirem, mas os que conseguem ultrapassar as dificuldades iniciais vii viii PREFÁCIO ficamcomacapacidadedeirmaislongenacriaçãodesoluçõesarquitectó- nicasinovadoras. EstelivropretendeiraoencontrodessesArquitectos. Capítulo 1 Programação 1.1 Introdução A transmissão de conhecimento é um dos problemas que desde cedo pre- ocupouahumanidade. Sendoohomemcapazdeacumularconhecimento ao longo de toda a sua vida, é com desânimo que enfrenta a ideia de que, comamorte,todoesseconhecimentoseperca. Para evitar esta perda, a humanidade inventou toda uma série de me- canismosdetransmissãodeconhecimento. Oprimeiro,atransmissãooral, consistenatransmissãodoconhecimentodeumapessoaparaumgrupore- duzidodeoutraspessoas,decertaformatransferindooproblemadaperda de conhecimento para a geração seguinte. O segundo, a transmissão es- crita,consisteemregistaremdocumentosoconhecimentoquesepretende transmitir. Estaformatemagrandevantagemde,porumlado,poderche- gar a muitas mais pessoas e, por outro, de reduzir significativamente o riscodeseperderoconhecimentoporproblemasdetransmissão. Defacto, a palavra escrita permite preservar por muito tempo e sem qualquer tipo deadulteraçãooconhecimentoqueoautorpretendeutransmitir. Égraçasàpalavraescritaquehojeconseguimoscompreendereacumu- lar um vastíssimo conjunto de conhecimentos, muitos deles registados há milharesdeanosatrás. Infelizmente, nem sempre a palavra escrita conseguiu transmitir com rigor aquilo que o autor pretendia. A língua natural tem inúmeras ambi- guidadeseevoluisubstancialmentecomotempo,oquelevaaqueainter- pretaçãodostextossejasempreumatarefasubjectiva. Querquandoescre- vemosumtexto,querquandoolemoseointerpretamos,existemomissões, imprecisões,incorrecçõeseambiguidadesquepodemtornaratransmissão de conhecimento falível. Se o conhecimento que se está a transmitir for simples, o receptor da informação, em geral, consegue ter a cultura e ima- ginação suficientes para conseguir ultrapassar os obstáculos. No caso da transmissão de conhecimentos mais complexos já isso poderá ser muito 1 2 CAPÍTULO1. PROGRAMAÇÃO maisdifícil. Quando se exige rigor na transmissão de conhecimento, fazer depen- deracompreensãodesseconhecimentodacapacidadedeinterpretaçãode quem o recebe pode ter consequências desastrosas e, de facto, a história da humanidade está repleta de acontecimentos catastróficos cuja causa é, tão somente, uma insuficiente ou errónea transmissão de conhecimento, ouumadeficientecompreensãodoconhecimentotransmitido. Para evitar estes problemas, inventaram-se linguagens mais rigorosas. Amatemática,emparticular,tem-seobssessivamentepreocupadoaolongo dosúltimosmilénioscomaconstruçãodeumalinguagemondeorigorseja absoluto. Istopermitequeatransmissãodoconhecimentomatemáticoseja muitomaisrigorosaquenasoutrasáreas,reduzindoaomínimoessenciala capacidadedeimaginaçãonecessáriadequemestáaabsorveresseconhe- cimento. Paramelhorpercebermosdoqueestamosafalar,consideremosumcaso concretodetransmissãodeconhecimento,porexemplo,ocálculodofacto- rialdeumnúmero. Seassumirmos,comopontodepartida,queapessoaa quemqueremostransmitiresseconhecimentojásabedeantemãooquesão osnúmeroseasoperaçõesaritméticas,podemosdizer-lhequeparacalcular o factorial de um número qualquer, terá de multiplicar todos os números desde a unidade até esse número. Infelizmente, esta descrição é demasiado extensa e, pior, é pouco rigorosa, pois não dá ao ouvinte a informação de que os números que ele tem de multiplicar são apenas os números inteiros. Para evitarestasimprecisõese,simultaneamente,tornarmaiscompactaainfor- mação a transmitir, a Matemática inventou todo um conjunto de símbolos e conceitos cujo significado deve ser compreendido por todos. Por exem- plo,paraindicarasequênciadenúmerosinteirosentre1e9,aMatemática permite-nos escrever 1,2,3,...,9. Do mesmo modo, para evitarmos falar de“umnúmeroqualquer,”aMatemáticainventouoconceitodevariável: um nome que designa qualquer “coisa” e que pode ser reutilizado em várias partes de uma afirmação matemática com o significado óbvio de repre- sentar sempre essa mesma “coisa.” Deste modo, a linguagem Matemática permite-nos formular a mesma afirmação sobre o cálculo do factorial nos seguintestermos: n! = 1 2 3 n × × ×··· × Será a definição anterior suficientemente rigorosa? Será possível inter- pretá-la sem necessitar de imaginar a intenção do autor? Aparentemente, simmas,naverdade,háumdetalhedadefiniçãoqueexigeimaginação: as reticências. Aquelas reticências indicam ao leitor que ele terá de imaginar o que deveria estar no lugar delas. Embora a maioria dos leitores imagine correctamente que o autor pretendia a multiplicação dos sucessores dos númerosanteriores,leitoreshaverácujaimaginaçãodelirantepoderálevá- losatentarsubstituiraquelasreticênciasporoutracoisaqualquer.

Description:
caso do AutoCAD, a linguagem de programação empregue é o AutoLisp, um dialecto de uma Assim, se quisermos intro- duzir um novo nome
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.