• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
63
0
0

Texto

(1)

BCC402

Algoritmos e Programação

Avançada

Prof. Marco Antonio M. Carvalho

Prof. Túlio Ângelo M. Toffolo

(2)

Na aula anterior

(3)

Na aula de hoje

(4)

Geometria

• A geometria é inerentemente uma disciplina visual

– Desenhar figuras e analisá-las cuidadosamente.

• Certas operações “óbvias” realizadas à mão requerem programação não trivial para serem realizadas computacionalmente

(5)

Geometria

• Nesta aula vamos desenferrujar um pouco sobre geometria

– Linhas, pontos, triângulos, círculos, etc.

• Problemas mais elaborados envolvendo segmentos de linha e polígonos serão estudados na próxima aula.

(6)

Geometria

• Linhas são a menor distância entre dois pontos…

– Comprimento infinito em ambas as direções

• Diferentemente de segmentos de linha, que são finitos.

– Vamos nos concentrar em linhas no plano

• Por falar nelas, procure pelo problema de mesmo nome no livro Matemática Concreta.

(7)

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 descrevem uma linha completamente

• m é a inclinação da linha

– m= (x1, x2)/ (y1, y2).

(8)

Geometria

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

• A equação x=c denota uma linha vertical que cruza 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.

(9)
(10)

Geometria

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

• É estabelecida uma representação canônica pela insistência que o coeficiente y é 1 caso seja

diferente de zero

– Caso contrário, o coeficiente x é 1;

– Apenas uma simplificação que mantém a linha próxima da origem.

(11)
(12)

Geometria

• Por exemplo, considere os pontos (2, 1) e (2, 8); • Temos a=1, b=0 e c=-2.

(13)

Geometria

• Agora, considere os pontos (1, 1) e (2, 8); • Temos a=-7, b=1 e

(14)

Geometria

• Agora, considere o ponto (2, 2) e a inclinação 5; • Temos a=-5, b=1 e c=8.

(15)

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.

(16)

Geometria

• Nota: a função fabs(double x) inclusa na biblioteca math.h calcula o valor absoluto de x;

(17)

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 ambas são iguais, ou seja:

(18)
(19)

Geometria

• Quaisquer duas linhas não paralelas se cruzam formando 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

(20)

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’

(21)

Geometria

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

• Este ponto mais próximo está sobre a linha que passa por p que é perpendicular a l

– Logo, pode ser determinado usando as rotinas anteriores.

(22)
(23)

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

(24)

Geometria

• Existem três funções trigonométricas básicas:

– Seno, Cosseno e Tangente.

• Estas funções são importantes porque nos

permitem relacionar o comprimento de quaiquer dois lados de um triângulo retângulo com os

(25)

Geometria

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

Taylor

– Tendem a ser instáveis;

– Não espere que θ = sen-1(sen(θ)), especialmente

(26)

Geometria

• Lei dos Senos

• Lei dos Cossenos

A, B, C: ângulos

(27)

Geometria

• Alguns problemas são recorrentes em triâ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

(28)

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 ângulos restantes.

– Caso contrário, a Lei dos Senos e a propriedade da soma dos ângulos podem ser usadas para determinar os ângulos

(29)

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).

(30)

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

(31)

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

(32)

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.

(33)

Geometria

• Um círculo pode ser representado em duas maneiras básicas:

– Por triplas de pontos fronteiriços; – Ou por seu centro e raio

(34)

Geometria

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

• Circunferência • Diâmetro

(35)

Geometria

• Uma linha l intercepta um círculo c em zero ou dois 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

(36)

Geometria

• A construção de uma linha tangente é ilustrada a seguir

– O ponto de contato entre c e l está sobre a linha perpendicular (90o) a l através do centro de c.

(37)

Geometria

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

(38)

Geometria

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

(39)

Geometria

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

(40)

Geometria

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

(41)

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 centros mais r1 for no máximo r2;

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

(42)
(43)

Geometria

• A biblioteca padrão math.h contém as funções trigonométricas padrões

– O retorno das funções é em radianos.

• Outro ponto importante é o intervalo de ângulos retornado pelas funções inversas

– sen-1 e tan-1: [-π/2,+π/2] radianos.

– tan2-1: [-π,+π] radianos;

(44)

Geometria

• Nota: existem duas funções arctan para identificar corretamente em qual quadrante está o ângulo

(45)

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!

(46)

Exemplo de Projeto

• O Super Homem deseja demonstrar seu poder entre sua posição atual s = (xs, ys) e uma

posiçã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 precisa atravessar.

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

(47)

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.

(48)

Exemplo de Projeto

s●

(49)

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.

(50)

Exemplo de Projeto

• Precisaremos de 3 operações geométricas bá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.

(51)
(52)

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 formada por s e t.

(53)
(54)

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…

(55)

Exemplo de Projeto

• Sabemos que d, a menor distância entre o centro do círculo e l está sobre uma linha perpendicular a l

– Logo, todos os 4 ângulos da interseção destas linhas são retos.

(56)

Exemplo de Projeto

• Incluindo os ângulos incidentes aos triângulos com lados r, d e x

– Podemos obter x pelo teorema de Pitágoras; – E o comprimento será 2x.

(57)

Exemplo de Projeto

• O arco (contorno) de menor comprimento pode ser 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

(58)
(59)

Exemplo de Projeto

(60)

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 para

representaçã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 usa geometria básica.

(61)
(62)

Na próxima aula

(63)

Referências

Documentos relacionados

É por meio de uma sucessão de camadas de interpretações, debates, discussões e olhares retrospectivos acerca de pequenos acontecimentos que vereditos (cf. Pelkmans, 2013) se formulam

Açúmulo de matéria seca e nutrientes nas folhas que irão formar a serapilheira (íeaf-fall) e nas depositadas sobre o solo (Jeaf-litterl de Eucalyptus saljgna e

Foram desenvolvidas duas formulações, uma utilizando um adoçante natural (stévia) e outra utilizando um adoçante artificial (sucralose) e foram realizadas análises

Segundo Éric Laurent, a psicose ordinária se caracteriza pela não resposta aos significantes-mestres tradicionais, manifestando o fim do poder do Nome-do-Pai como

־ Uma relação de herança surge quando um objecto também é uma instância de uma outra classe mais geral (exemplo: “automóvel é um veículo”). ־ É sempre possível

• Os municípios provavelmente não utilizam a análise dos dados para orientar o planejamento de suas ações;. • Há grande potencialidade na análise dos micro dados do Sisvan

A par disso, analisa-se o papel da tecnologia dentro da escola, o potencial dos recursos tecnológicos como instrumento de trabalho articulado ao desenvolvimento do currículo, e

◦ Os filtros FIR implementados através de estruturas não recursivas têm menor propagação de erros. ◦ Ruído de quantificação inerente a