Modelação Geométrica e Visualização de Edifícios – 2008/2009 · Instituto Superior Técnico...

4
Instituto Superior Técnico Modelação Geométrica e Visualização de Edifícios – 2008/2009 Segundo Exame – 11/07/2009 Número: Nome: Escreva o seu número em todas as folhas da prova. O tamanho das respostas deve ser limitado ao espaço fornecido para cada pergunta. Se tiver dúvidas de interpretação, faça suposições razoáveis e explicite-as na sua resposta. Pode usar os versos das folhas para rascunho. A prova tem 4 páginas e a duração é de 60 minutos. A cotação de cada questão encontra-se indicada entre parêntesis. Boa sorte. Considere pré-definidos os operadores aritméticos, lógicos e relacionais e os nomes pi, xy, +xy, pol, +pol, xyz, +xyz, cil, +cil, cx, cy, cz, sqrt, abs, max, min, random, random-[] e cons. 1. (2.0) Calcule o valor das seguintes expressões Auto Lisp: (a) ( * 2 2 (- 2)) -8 (b) (- ( * 2 2) 2) 2 (c) (- -2 -2) 0 (d) (- -2 +2) -4 (e) (/ 2 4) 0 (f) ( * (/ 2 4) 4) 0 (g) ( * (- 2 4) 4) -8 (h) (/ (/ (/ 6 3) -2) 2) 0 (i) (/ 6 (/ 3 (/ -2 2))) -2 (j) (+ (/ 1 2) (/ 1 2) (/ 1 2)) 0 2. (1.0) Do conjunto das funções trigonométricas inversas, o Auto Lisp apenas providencia o arco tangente (atan). Defina também a função arco-seno (asin), cuja definição matemática é: asin x = atan x 1 - x 2 (defun asin (x) (atan x (sqrt (- 1 ( * x x)))))

Transcript of Modelação Geométrica e Visualização de Edifícios – 2008/2009 · Instituto Superior Técnico...

Page 1: Modelação Geométrica e Visualização de Edifícios – 2008/2009 · Instituto Superior Técnico Modelação Geométrica e Visualização de Edifícios – 2008/2009 Segundo Exame

Instituto Superior Técnico

Modelação Geométrica e Visualização de Edifícios – 2008/2009

Segundo Exame – 11/07/2009

Número:

Nome:

Escreva o seu número em todas as folhas da prova. O tamanho das respostas deve ser limitado ao espaçofornecido para cada pergunta. Se tiver dúvidas de interpretação, faça suposições razoáveis e explicite-as na suaresposta. Pode usar os versos das folhas para rascunho. A prova tem 4 páginas e a duração é de 60 minutos.A cotação de cada questão encontra-se indicada entre parêntesis. Boa sorte.

Considere pré-definidos os operadores aritméticos, lógicos e relacionais e os nomes pi, xy, +xy,pol, +pol, xyz, +xyz, cil, +cil, cx, cy, cz, sqrt, abs, max, min, random, random-[] e cons.

1. (2.0) Calcule o valor das seguintes expressões Auto Lisp:

(a) (* 2 2 (- 2))

-8(b) (- (* 2 2) 2)

2(c) (- -2 -2)

0(d) (- -2 +2)

-4(e) (/ 2 4)

0(f) (* (/ 2 4) 4)

0(g) (* (- 2 4) 4)

-8(h) (/ (/ (/ 6 3) -2) 2)

0(i) (/ 6 (/ 3 (/ -2 2)))

-2(j) (+ (/ 1 2) (/ 1 2) (/ 1 2)) 0

2. (1.0) Do conjunto das funções trigonométricas inversas, o Auto Lisp apenas providencia o arcotangente (atan). Defina também a função arco-seno (asin), cuja definição matemática é:

asinx = atanx√

1− x2

(defun asin (x)(atan x (sqrt (- 1 (* x x)))))

Page 2: Modelação Geométrica e Visualização de Edifícios – 2008/2009 · Instituto Superior Técnico Modelação Geométrica e Visualização de Edifícios – 2008/2009 Segundo Exame

Número: 2

3. (1.5) A área A de um pentágono regular inscrito num círculo de raio r é dada pela fórmula

A =58r2

√10 + 2

√5

Defina uma função Auto Lisp que calcule essa área.

(defun area-pentagono-regular (r)(* (/ 5.0 8.0) r r (sqrt (+ 10 (* 2 (sqrt 5))))))

4. (2.5) Defina a função meio que recebe três números como argumento e devolve o número “domeio,” i.e., que está entre o maior e o menor.

(defun meio (x y z / maior)(setq maior (max x y z))(cond ((= maior x) (max y z))

((= maior y) (max x z))(t (max x y))))

5. (1.0) Defina a função -z que, dado um ponto em coordenadas tri-dimensionais, calcula as coorde-nadas do ponto que lhe está directamente por baixo à distância ∆z .

(defun -z (p dz)(+xyz p 0 0 (- dz)))

6. (1.5) Traduza para Lisp as seguintes expressões matemáticas:

(a) |x| < y

(< (abs x) y)(b) x < y ∧ |y| < z

(and (< x y) (< (abs y) z))(c) x ≤ y ∨ x ≤ z

(or (< x y) (< x z))

7. (2.5) As raízes da equação do segundo grau ax2 + bx + c = 0, podem ser calculadas pela famosafórmula resolvente:

x =−b+

√b2 − 4ac

2a∨ x =

−b−√b2 − 4ac

2a

Defina uma função Auto Lisp que, dados os coeficientes da equação do segundo grau, devolveum par com as raizes dessa equação. Tenha o cuidado de evitar quaisquer cálculos repetidos.

(defun raizes-equacao-segundo-grau (a b c/ raiz-b2-4ac 2a -b)

(setq raiz-b2-4ac (sqrt (- (quadrado b) (* 4 a c)))2a (* 2 a)-b (- b))

(cons (/ (- -b raiz-b2-4ac)2a)

(/ (+ -b raiz-b2-4ac)2a)))

Page 3: Modelação Geométrica e Visualização de Edifícios – 2008/2009 · Instituto Superior Técnico Modelação Geométrica e Visualização de Edifícios – 2008/2009 Segundo Exame

Número: 3

8. (3.0) Considere a construção de uma escada em caracol tal como se apresenta nos três exemplosapresentados na seguinte imagem:

Note que cada degrau consiste simplesmente de um paralelipípedo assente em cima do de-grau imediatamente abaixo e que a coluna central é um cilindro cujo diâmetro é igual à largurado degrau. Defina a função Auto Lisp escada-caracol capaz de construir a escada em ca-racol. A função deverá receber, como parâmetros, o ponto P da base do eixo de rotação, ocomprimento c, largura l e espessura e de cada degrau, o ângulo α de rotação do degrau e oincremento de rotação ∆α entre degraus consecutivos e, finalmente, o número n de degraus.Assuma a existência das funções (cilindro P0 r P1) e (paralelipipedo P0 l e P1) queconstroem os seguintes sólidos:

P0

P1le

P0

P1 r

(defun degraus-caracol (p c l e a da n)(if (= n 0)

(regiao-vazia)(uniao

(paralelipipedo p l e (+pol p c a))(degraus-caracol

(+xyz p 0 0 e)c l e(+ a da) da(- n 1)))))

(defun escada-caracol (p c l e a da n)(uniao(degraus-caracol (+xyz p 0 0 (/ e 2.0)) c l e a da n)(cilindro p (/ l 2.0) (+xyz p 0 0 (* n e)))))

Page 4: Modelação Geométrica e Visualização de Edifícios – 2008/2009 · Instituto Superior Técnico Modelação Geométrica e Visualização de Edifícios – 2008/2009 Segundo Exame

Número: 4

9. (1.0) Defina uma função Lisp que recebe uma quantidade angular em graus e calcula o valor cor-respondente em radianos. Note que 180 graus correspondem a π radianos.

(defun radianos<-graus (graus)(* pi (/ graus 180.0)))

10. (2.0) O que é um operador relacional? Dê quatro exemplos de operadores relacionais em AutoLisp.

• Um operador relacional é um operador que compara os seus ope-randos.• As funções >, =, >= e <= são exemplos de operadores relacionais.

11. (2.0) Imagine uma linha que é sempre paralela a um dos eixos coordenados mas que muda aleato-riamente de direcção de tal forma que acaba por criar um “emaranhado.”

A seguinte imagem mostra três destes emaranhados:

Defina a função emaranhado que recebe o ponto P de origem da linha, a distância máximad que é percorrida entre mudanças de direcção e o número n de mudanças de direcção quea linha deve realizar. Note que, entre cada mudança de direcção, a linha tem um compri-mento aleatório entre zero e a distância máxima. A sua função deverá simular o emaranhadocorrespondente, tal como se apresenta na figura anterior que foi criada por três execuções di-ferentes desta função. Da esquerda para a direita, foram usados os parâmetros d = 5, n = 100,d = 2, n = 200, e d = 8, n = 50,

(defun emaranhado (p d n / p1 dist)(if (= n 0)

nil(progn

(setq p1 (+pol p (random-[] 0 d) (* (random 4) (/ pi 2))))(command "_.line" p p1 "")(emaranhado p1 d (- n 1)))))