bcc402 algoritmos e programação avançada -...

63
BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

Upload: haphuc

Post on 08-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

BCC402 Algoritmos e Programação AvançadaProf. Marco Antonio M. CarvalhoProf. Túlio Ângelo M. Toffolo2011/1

Page 2: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

2

Na aula anterior

• Prova.

Page 3: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

3

Na aula de hoje

• Geometria.

Page 4: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• A geometria é inerentemente uma disciplinavisual– Desenhar figuras e analisá-las cuidadosamente.

• Certas operações “óbvias” realizadas à mãorequerem programação não trivial para seremrealizadas computacionalmente– Como determinar a interseção entre linhas.

4

Page 5: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Nesta aula vamos desenferrujar um poucosobre geometria– Linhas, pontos, triângulos, círculos, etc.

• Problemas mais elaborados envolvendosegmentos de linha e polígonos serãoestudados na próxima aula.

5

Page 6: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Linhas são a menor distância entre doispontos…– Comprimento infinito em ambas as direções

• Diferentemente de segmentos de linha, que sãofinitos.

– Vamos nos concentrar em linhas no plano• Por falar nelas, procure pelo problema de mesmo

nome no livro Matemática Concreta.

6

Page 7: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Linhas podem ser representadas por pares de pontos ou equações– Pares de pontos (x1, y1) e (x2, y2) que estejam

sobre uma linha podem descrevê-la completamente;

– Também, equações do tipo y=mx+b descrevemuma linha completamente

• m é a inclinação da linha– m= (x1, x2)/ (y1, y2).

• b é o único ponto (0, b) em que a linha intercepta o eixo y

– b=y1-mx1 7

Page 8: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Linhas veriticais não podem ser descritas porequações como as anteriores porque o divisor seria zero;

• A equação x=c denota uma linha vertical quecruza o eixo x no ponto (c, 0);

• Este tipo de degeneração requer atenção extra quando estivermos programando;

• Utilizaremos a fórmula mais geral ax+by+c=0 para atendermos a todas as possibilidades.

8

Page 9: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

9

Page 10: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Multiplicar qualquer um destes coeficientes por umaconstante não nula resulta em uma representaçãoalternativa para qualquer linha;

• É estabelecida uma representação canônica pelainsistência que o coeficiente y é 1 caso sejadiferente de zero– Caso contrário, o coeficiente x é 1;– Apenas uma simplificação que mantém a linha

próxima da origem.

10

Page 11: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

11

Page 12: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Por exemplo, considere os pontos(2, 1) e (2, 8);

• Temos a=1, b=0 e c=-2.

12

Page 13: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Agora, considere ospontos (1, 1) e (2, 8);

• Temos a=-7, b=1 e c=6.

13

Page 14: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Agora, considere o ponto (2, 2) e a inclinação 5;

• Temos a=-5, b=1 e c=8.

14

Page 15: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Duas linhas possuem um ponto de interseção, a não ser que sejam paralelas– Linhas paralelas possuem a mesma inclinação,

porém, diferentes pontos de interceptação dos eixos, e por definição nunca se cruzam.

15

Page 16: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Nota: a função fabs(double x) inclusa na biblioteca math.h

calcula o valor absoluto de x;• A constante EPSILON é aproximadamente 0 (0,0000001).

16

Page 17: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Um ponto (x’, y’) está sobre uma linha l se a substituição de x por x’ na fórmula y=mx+b

resulta em y’;• O ponto de interseção das linhas l1 (y = m1x +

b1) e l2 (y2 = m2x + b2) é o ponto em que ambassão iguais, ou seja:

,

17

Page 18: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

18

Page 19: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Quaisquer duas linhas não paralelas se cruzamformando um determinado ângulo;

• Duas linhas l1: a1x+b1y+c1=0 e l2: a2x+b2y+c2=0 se cruzam no ângulo θ dado por:

• Para linhas representadas por inclinação, a fórmula se reduz a

19

Page 20: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Duas linhas são perpendiculares se elas se cruzam em ângulo reto;

• Uma linha perpendicular à linha l: y=mx+b é y=( -1/m)x+b’– Para todos os valores de b’.

20

Page 21: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Um subproblema útil é o de identificar o pontosobre a linha l que mais se aproxime mais de um determinado ponto p;

• Este ponto mais próximo está sobre a linha quepassa por p que é perpendicular a l– Logo, pode ser determinado usando as rotinas

anteriores.

21

Page 22: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

22

Page 23: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Raios são partes de linhas que se originam a partir de um vértice v, chamado de origem;

• Qualquer raio é completamente descrito por:– Uma equação de linha;– Origem– Destino– Direção ou origem e outro ponto no raio.

23

Page 24: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Existem três funções trigonométricas básicas:– Seno, Cosseno e Tangente.

• Estas funções são importantes porque nospermitem relacionar o comprimento de quaiquerdois lados de um triângulo retângulo com osoutros ângulos não retos.

24

Page 25: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Internamente, as funções trigonométricas sãocalculadas usando expansões da Série de Taylor

– Tendem a ser instáveis;– Não espere que θ = sen-1(sen(θ)), especialmente

para ângulos muito pequenos ou muito grandes.

25

Page 26: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Lei dos Senos

• Lei dos Cossenos

26

A, B, C: ângulosa, b, c: lados opostos

Page 27: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Alguns problemas são recorrentes emtriângulos;

• Dados dois ângulos e um lado, encontre o resto– Os três ângulos devem somar 180º = π radianos;– A Lei dos Senos nos fornece um meio para

encontrar o comprimento dos lados restantes.

27

Page 28: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Dados dois lados e um ângulo, encontre o resto– Se o ângulo está entre os dois lados fornecidos,

a Lei dos Cossenos nos fornece um meio de calcular o lado restante

• A Lei dos Senos nos permite determinar os ângulosrestantes.

– Caso contrário, a Lei dos Senos e a propriedadeda soma dos ângulos podem ser usadas paradeterminar os ângulos

• E a Lei dos Senos novamente para determinar o ladorestante.

28

Page 29: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• A área A(T) de um triângulo T é dada por A(T) = ½ab, em que a é a altura e b a base do triângulo– A base é qualquer um dos lados;– A altura é a altura do terceiro vértice em relação

à base (calculado pelo teorema de Pitágoras).

29

Page 30: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Uma outra maneira de calcular a área do triângulo é direta a partir de suas coordenadas– Usando álgebra linear e determinantes, pode ser

mostrado que a área (com sinal) A(T) do triângulo T=(a, b, c) é:

30

Page 31: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Note que a área com sinal pode ser negativa– Então devemos usar o valor absoluto.– Isto não é um bug do cálculo

• Na próxima aula veremos aplicações disto.

31

Page 32: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Um círculo é definido como o conjunto de pontos a uma determinada distância (ou raio) a partir de seu centro (xc, yc);

• Um disco é um círculo somado a seu interior– Ou seja, o conjunto de pontos cuja distância é no

máximo r a partir de seu centro.

32

Page 33: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Um círculo pode ser representado em duasmaneiras básicas:– Por triplas de pontos fronteiriços;– Ou por seu centro e raio

• O mais conveniente para a maioria das aplicações.

33

Page 34: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• A equação de um círculo com raio r é

• Área

• Circunferência

• Diâmetro

34

Page 35: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Uma linha l intercepta um círculo c em zero oudois pontos em boa parte das vezes– Neste primeiro caso, a linha não cruza o círculo;– No segundo caso, ela cruza o interior do círculo.

• O único caso restante é quando a linha toca a borda do círculo, mas não seu interior– Ou seja, é uma linha tangente.

35

Page 36: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• A construção de uma linha tangente é ilustradaa seguir– O ponto de contato entre c e l está sobre a linha

perpendicular (90o) a l através do centro de c.

36

Page 37: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

– O triângulo formado pelos lados r, d e x é retângulo

37

Page 38: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• A distância d de O até o centro é calculado pelafórmula da distância.

38

Page 39: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• O que nos permite calcular a tangente x usando o teorema de Pitágoras

– Sabemos o comprimento dos lados r e d.

39

Page 40: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• A partir de x, podemos calcular o ponto de tangênciaou o ângulo a.

40

Page 41: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Dois círculos c1 e c2 de raios distintos r1 e r2

podem interagir entre si de diversas maneiras:– Eles terão uma interseção sse a distância entre

seus centros for no máximo r1+r2 ;– O menor círculo (e. g., c1) estará completamente

contido em c2 sse a distância entre os centrosmais r1 for no máximo r2;

– Se c1 e c2 possuírem interseções, os dois pontosde interseção formam triângulos com os centros, cujos lados são determinados

• r1, r2 e a distância dos centros.41

Page 42: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

42

Page 43: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• A biblioteca padrão math.h contém as funçõestrigonométricas padrões– O retorno das funções é em radianos.

• Outro ponto importante é o intervalo de ângulosretornado pelas funções inversas– sen-1 e tan-1: [-π/2,+π/2] radianos.– tan2-1: [-π,+π] radianos;– cos-1: [0,π] radianos.

43

Page 44: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

• Nota: existem duas funções arctan para identificarcorretamente em qual quadrante está o ângulo– O que depende dos sinais de x e y.

44

Page 45: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

Mais rápido que uma bala;Mais forte que uma locomotiva;Capaz de saltar sobre os prédios;É um pássaro! É um avião!Não! É o Super-Homem!

45

Page 46: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• O Super Homem deseja demonstrar seu poderentre sua posição atual s = (xs, ys) e umaposição alvo t = (xt, yt)– O ambiente contém obstáculos cilíndricos, como

colunas• A visão de raio-x não possui alcance infinito, sendo

limitada pela quantidade de material que precisaatravessar.

– Ele está ansioso para calcular o comprimentototal dos obstáculos entre os dois pontos, parasaber se tenta a demonstração ou não.

46

Page 47: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• Uma vez decidido, o Super Homem voará entre os dois pontos– O caminho ideal é a linha que liga os dois pontos

• Porém, ele não voa através dos objetos.

– Quando encontra um obstáculo, ele o contorna e então volta à linha reta

• O que não é o menor caminho, a não ser que se escolha a menor curva do contorno.

47

Page 48: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

48

s●

t●

Page 49: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• Assuma que:– Os obstáculos não possuem interseção;– Os pontos inicial e final estão fora dos

obstáculos;– A especificação dos círculos é feita pelas

coordenadas do centro e raio.

49

Page 50: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• Precisaremos de 3 operações geométricasbásicas:1. Testar se um círculo possui interseção com

uma linha l;2. Computar o comprimento do segmento de linha

da interseção;3. Computar o comprimento do arco que contorna

o menor lado do círculo cortado por l.

50

Page 51: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

51

Page 52: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• A primeira tarefa é fácil:– Basta encontrar a menor distância entre o centro

do círculo até l

• Se for menor que o raio do círculo, há interseção;• Caso contrário, não há interseção.

– Para testar se a interseção ocorre entre s e t, basta verificar se tal ponto em l mais próximo do centro do círculo está contido na caixa formadapor s e t.

52

Page 53: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

53

Page 54: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• Já a segunda tarefa…– Podemos calcular as coordenadas dos dois

pontos de interseção• Basta igualar as equações da linha e do círculo e

resolver a equação quadrática resultante.• “Basta”? Só se for para o super homem…

– Existe uma maneira mais simples.

54

Page 55: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• Sabemos que d, a menor distância entre o centro do círculo e l está sobre uma linhaperpendicular a l– Logo, todos os 4 ângulos da interseção destas

linhas são retos.

55

Page 56: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• Incluindo os ângulos incidentes aos triânguloscom lados r, d e x– Podemos obter x pelo teorema de Pitágoras;– E o comprimento será 2x.

56

Page 57: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• O arco (contorno) de menor comprimento podeser obtido a partir do ângulo a

– O arco é 2a/2π vezes a circunferência do círculo;– Em radianos.

• O ângulo pode ser computado como um dos problemas recorrentes de triângulos– Dados dois lados e um ângulo, encontre o

resto…– Ou utilizamos funções trigonométricas inversas

cos-1).57

Page 58: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

58

Page 59: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Exemplo de Projeto

• Mostrar o código…

59

Page 60: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

Geometria

Sumário dos arquivos:• geometry.h: define os tipos de dados para

pontos, polígonos, segmentos de reta, círculos e triangularizações, além de constantes;

• geometry.c: implementa funções pararepresentação de linhas e segmentos de linha, testes de paralelismo, interseção, distância e áreas de algumas formas;

• superman.c: exemplo de problema que usageometria básica.

60

Page 61: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

61

Perguntas?

Page 62: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

62

Na próxima aula

• + Geometria.

Page 63: BCC402 Algoritmos e Programação Avançada - jeiks.netjeiks.net/wp-content/uploads/2014/08/TEP_Extra-13.pdf · • b é o único ponto (0, b) em que a linha intercepta o eixo y –

63

FIM