Exercícios de Programação e Computação para Arquitectura António Menezes Leitão Aula 5 1 Introdução Um Tholos é um edifício composto por uma base circular e por um conjunto de colunas dispostas de forma circular. Para modelarmos um tholos necessitamos de modelar cada uma das colunas, a base do tholos, e o arranjo circular de colunas. 1.1 Coluna Considere a seguinte função coluna-dorica que modela uma coluna dórica e que apenas recebe a localização do centro da base e a altura da coluna: (coluna-dorica (xy 0 0) 10) A definição desta função é a seguinte: 1 (define (coluna-dorica p altura) (define r-base-fuste (/ altura 14)) (define r-base-coxim (raio-topo-fuste r-base-fuste altura)) (define a-fuste (* 13 r-base-fuste)) (define a-coxim (* 2/3 r-base-fuste)) (define a-abaco (* 1/3 r-base-fuste)) (define l-abaco (* 13/6 r-base-fuste)) (fuste p a-fuste r-base-fuste r-base-coxim) (coxim (+z p a-fuste) a-coxim r-base-coxim (/ l-abaco 2)) (abaco (+z p (+ a-fuste a-coxim)) a-abaco l-abaco)) A criação de colunas dóricas depende da relação entre o topo, a base, e a altura da coluna: (define (raio-topo-fuste raio-base altura) (if (< altura 15) (* 5/6 raio-base) (let ((divisoes (quotient altura 10))) (* (/ (+ 10 divisoes) (+ 12 divisoes)) raio-base)))) Finalmente, as várias partes da coluna são modeladas pelas seguintes funções: (define (fuste p a-fuste r-base r-topo) (cone-frustum p r-base a-fuste r-topo)) (define (coxim p a-coxim r-base r-topo) (cone-frustum p r-base a-coxim r-topo)) (define (abaco p a-abaco l-abaco) (box (+xyz p (/ l-abaco -2.0) (/ l-abaco -2.0) 0) l-abaco l-abaco a-abaco)) 2 1.2 Base do Tholos z rp ∆ab ∆rb x rb (define (base-tholos p n-degraus raio d-altura d-raio) (if (= n-degraus 0) #t (begin (cylinder p raio d-altura) (base-tholos (+xyz p 0 0 d-altura) (- n-degraus 1) (- raio d-raio) d-altura d-raio)))) 3 1.3 Colunas do Tholos z ap ab rb rp y rp ∆φ φ x (define (colunas-tholos p n-colunas raio fi d-fi altura) (if (= n-colunas 0) #t (begin (coluna-dorica (+pol p raio fi) altura) (colunas-tholos p (- n-colunas 1) raio (+ fi d-fi) d-fi altura)))) 1.4 Tholos (define (tholos p n-degraus rb dab drb n-colunas rp ap) (base-tholos p n-degraus rb dab drb) (colunas-tholos (+xyz p 0 0 (* n-degraus dab)) n-colunas rp 0 (/ 2pi n-colunas) ap)) 4 1.5 Exemplo (tholos (xyz 0 0 0) 3 7.9 0.2 0.2 20 7 4) 2 Exercícios Exercicio 2.1 Considere a construção de uma torre composta por vários módulos em que cada módulo tem exactamente as mesmas características de um Tholos, tal como se apresenta na figura abaixo, à esquerda: O topo da torre tem uma forma semelhante à da base de um Tholos, embora com mais degraus. Defina a função torre-tholos que, a partir do centro da base da torre, do número de módulos, do número de degraus a considerar para o topo e dos restantes parâmetros necessários para definir um módulo idêntico a um Tholos, constrói a torre apresentada anteriormente. 5 Experimente a sua função criando uma torre composta por 6 módulos, com 10 degraus no topo, 3 degraus por módulo, qualquer deles com comprimento de espelho e de cobertor de 0.2, raio da base de 7.9 e 20 colunas por módulo, com raio de peristilo de 7 e altura de coluna de 4. Exercicio 2.2 Com base na resposta ao exercício anterior, redefina a construção da torre de forma a que a dimensão radial dos módulos se vá reduzindo à medida que se ganha altura, tal como acontece na torre apresentada no centro da imagem seguinte. Exercicio 2.3 Com base na resposta ao exercício anterior, redefina a construção da torre de forma a que o número de colunas se vá também reduzindo à medida que se ganha altura, tal como acontece na torre da direita da seguinte imagem: Exercicio 2.4 Considere a criação de uma cidade no espaço, composta apenas por cilindros com dimensões progressivamente mais pequenas, unidos uns aos outros por intermédio de esferas, tal como se apresenta (em perspectiva) na seguinte imagem estereoscópica. Para visualizar a imagem estereoscópica, foque a atenção no meio das duas imagens e cruze os olhos, como se quisesse focar um objecto muito próximo. Irá reparar que as duas imagens 6 passaram a ser quatro, embora ligeiramente desfocadas. Tente então alterar o cruzar dos olhos de modo a só ver três imagens, i.e., até que as duas imagens centrais fiquem sobrepostas. Concentre-se nessa sobreposição e deixe os olhos relaxarem até a imagem ficar focada. Defina uma função que, a partir do centro da cidade e do raio dos cilindros centrais constrói uma cidade semelhante à representada. 7