• Nenhum resultado encontrado

5HSUHVHQWDomRGRVFHQiULRV

N/A
N/A
Protected

Academic year: 2021

Share "5HSUHVHQWDomRGRVFHQiULRV"

Copied!
18
0
0

Texto

(1)

Um importante passo no modelagem determinística do canal de rádio é ter um esquema eficiente para representar os componentes do cenário numa base de dados, de forma a poder achar informações de forma rápida e precisa. Estas informações são do tipo interseção (ou não) de um raio com um objeto (descrição geométrica), de que material é constituído o prédio, quais são seus parâmetros característicos (descrição morfológica). Respostas rápidas para este tipo de perguntas constituem-se numa parte central de qualquer algoritmo eficiente, implementado através de uma estrutura de dados.

Nas seções seguintes estudam-se alguns dos mais populares esquemas de representação geométrica.



(VTXHPDVGHUHSUHVHQWDomRXVXDLV 

Existem muitos esquemas para renderização de cenários na área de computação gráfica. Alguns dos esquemas estudados mais profundamente são: os esquemas de representação de fronteira, esquemas relacionado com a geometria dos sólidos, métodos de subdivisão espacial etc. Além destes métodos existem combinações e variações dos mesmos [12,49]. A escolha de algum esquema é altamente influenciada pelo tipo de finalidade da representação (processamento de imagens, modelagem de sólidos, robótica, etc.)

 

(VTXHPDVGHUHSUHVHQWDomRSRUIURQWHLUDV ERXQGDU\UHSUHVHQWDWLRQ  Representação por fronteiras (Brep) é tipicamente entendido como uma representação dos objetos por superfícies, como é mostrado na Fig. (3.1). Este esquema é o mais versátil e amplamente usado para

(2)

representação geométrica para vários domínios de aplicação. Neste esquema enumera-se todos os vértices no cenário. As bordas estão relacionadas através dos vértices. Similarmente, em 3D as faces estão relacionadas através das bordas. Para (Brep), a combinação destes vértices, bordas e faces planas poligonais são definidas como objetos.



)LJXUDRepresentação por fronteiras de um cubo [52]

As vantagem desta técnica é a simplicidade em sua representação na base de dados, a simplificação na determinação dos campos. A maior desvantagem é que esta representação não distingue entre o interior e o exterior do objeto. Usualmente informação adicional deve ser salva para uma explícita distinção. Tipicamente uma normal a superfície é salva para cada polígono, com a condição de que a normal é definida como um vetor unitário saindo do polígono.

Consideraremos uma vista tridimensional de um cenário (com um sólido apenas), como é mostrado na fig. (3.2.a)



)LJXUDDVista tridimensional de um cenário (com um sólido apenas)

(3)



Sua descrição geométrica consiste em compor o cenário através de sólidos multifacetados e de seções de planos. Dessa forma, todos os obstáculos relevantes do ambiente são transformados em polígonos (as faces dos poliedros). Os obstáculos relevantes são [52]:

¾ Em ambientes outdoor : plano inferior (chão), paredes externas e plano superior (telhado) das casas e prédios 

¾ Em ambientes indoor : plano inferior (piso), paredes internas, divisórias, mobiliário de grandes dimensões (quando essa informação estiver disponível), janelas e portas (quando essa informação estiver disponível)e plano superior (teto).

Em relação à descrição morfológica é necessário introduzir as características elétricas (permissividade elétrica e condutividade) de cada face do cenário.

Em [52], são dadas sugestões de dados a ser armazenados a respeito do cenário. Embora as necessidades de armazenamento possam variar conforme a implementação, as sugestões a seguir funcionam como uma base :

1) Número de faces;

2) Número de vértices de cada fase;

3) Coordenadas cartesianas dos vértices de cada face; 4) Tipo de material de cada face (atributo de face). Já

caracterizado através da descrição morfológica;

5) Informações da espessura de cada face, para ambientes indoor;

6) Vetor normal a cada face, orientado para fora do sólido do qual a face faz parte;

7) Faces conectadas a determinada face (topologia);

8) Arestas determinadas pela ligação entre duas, e apenas duas faces.

Um exemplo dos dados dos materiais e coordenadas das faces são dadas na tabela seguinte

(4)

7DEHOD Dados relativos ao material da figura 3.2.a. FRRUGHQDGDV )DFH Q GH YpUWL FHV PDWHULDO

;u10 [m] <u10 [m] =u10 [m]

1 4 tijolo 4,10,10,4 3,3,3,3 0,0,10,16 2 4 tijolo 10,10,10,10 3,17,17,3 0,0,10,10 3 4 tijolo 4,10,10,4 17,17,17,17 0,0,16,10 4 4 tijolo 10,10,10,10 3,17,17,3 0,0,16,16 5 4 telha 10,10,4,4 3,3,17,17 10,10,16,16 6 4 asfalto 0,15,15,0 0,0,17,17 0,0,0,0

São necessárias outras informações geométricas para os cálculos de propagação como é mostrado nas tabelas 3.2 e 3.3. e figuras 3.2.b e 3.2.c.

7DEHOD'DGRVUHODWLYRVjWRSRORJLDHDRVYHWRUHVQRUPDLV

Face Topologia Vetor Normal

1 2,5,4 e 6 ( 0.0, -1.0, 0.0) 2 6,3,5 e 1 ( 1.0, 0.0, 0.0) 3 6,4,5 e 2 ( 0.0, 1.0, 0.0) 4 6,1,5 e 3 (-1.0, 0.0, 0.0) 5 2,3,4 e 1 ( 0.7, 0.0, 0.7) 6 0,0,0 e 0 ( 0.0, 0.0, 1.0)    

Vetores unitários para o sólido da figura 3.2.a

(5)



7DEHOD - Dados relativos às arestas

$UHVWD )DFHV ÆQJXOR 1 1 e 2 90.0o 2 2 e 3 90.0o 3 3 e 4 90.0o 4 4 e 1 90.0o 5 1 e 5 90.0o 6 2 e 5 45.0o 7 3 e 5 90.0o 8 4 e 5 135.0o

)LJXUDF Ângulos entre as faces do sólido da figura 3.2.a 

Não obstante, com o conhecimento de todos estes dados, não é possível assegurar a consistência de um objeto em termos de um espaço fechado, a não ser que exista um mecanismo para reconhecer se há descontinuidades entre as bordas ou vértices. Além disto, para cenários grandes, a base de dados não é espacialmente organizada[4]. É necessário um acompanhamento da estrutura de dados para ajudar a localizar os vértices adjacentes no cenário. Similarmente, determinar as superfícies mais próximas é uma operação computacionalmente custosa, a não ser que relações espaciais entre todas as faces sejam mantidas. Isto novamente adiciona complexidade à estrutura de dados. Muitas variações do esquema básico tem sido propostas para manter relacionados as diferentes componentes do cenário. A maioria dos

(6)

sistemas de cálculo de radiopropagação usam alguma variante da representação por fronteiras.



*HRPHWULDVyOLGDFRQVWUXWLYD *6&  

É um esquema popular de representação para sólidos, oposto ao esquema de representação por fronteiras [12]. O esquema foi primariamente desenvolvido para modelos complexos de objetos 3D. A representação é iniciada com um conjunto básico de primitivas tais como um cubo, uma esfera, um cone, uma pirâmide, um tetraedro, etc. As primitivas são definidas como volume fronteiriço, tipicamente como resultado de uma interseção de um conjunto de semi-espaços. Novos objetos são construídos a partir destas primitivas usando operações booleanas (união, interseção e diferença). Um exemplo é mostrado na fig. 3.3.



)LJXUD Exemplo de representação de um sólido usando GSC. 

Estas operações devem-se realizar entre duas primitivas ou entre uma primitiva e um objeto complexo. Transformações tais como escalamento, translação, rotação, etc. podem ser realizadas sobre as primitivas e suas combinações. Estas operações booleanas formam uma

(7)

hierarquia de objetos intermediários, os quais podem ser salvos em uma estrutura de árvore hierárquico. Os nós das árvores representam operações booleanas entre objetos e as folhas da árvore representam as primitivas. O cenário completo consiste de muitos objetos complexos e poderá algumas vezes ser representado como uma simples árvore. Como uma das vantagens tem-se que sua representação é compacta. Porém algumas vezes, depois de muitas operações booleanas, devido à complexidade do objeto, torna-se difícil representar o objeto resultante como um simples polinômio.

    6XEGLYLVmRHVSDFLDO 

Na modelagem de aplicações, os métodos de subdivisão espacial estão sendo muito usados[19,44,18,4,7]. Por exemplo, na procura do ponto de interseção raio-parede, se na base de dados tem-se n paredes e desejamos saber qual parede contém o ponto de interseção, a solução mais direta consiste em recorrer a lista e avaliar se algum deles contém o ponto. Este algoritmo tem complexidade computacional O(n), ou seja, o tempo de execução é proporcional a n, a idéia básica para reduzir o ordem de um problema de procura é dividir o espaço em numerosas zonas que chamaremos de células e estabelecer uma relação de correspondência entre estas zonas e os entes geométricos (paredes). O processo de busca é executado então como segue: em primeiro lugar identifica-se em que célula está incluído o ponto e a seguir determina-se quais elementos entre os associados aquela célula contém o ponto dado.

Para propósito prático nos restringiremos a duas e três dimensões. A resolução com a qual o espaço é subdividido depende da exatidão desejada para a aplicação particular ou para um objeto especifico. O espaço pode ser dividido por um variado número de técnicas. Esta divisão pode ser uniforme ou não uniforme. Além disso, a divisão pode ser ao longo dos eixos coordenados ou ao longo de qualquer eixo arbitrário.

(8)

Uma vantagem da subdivisão uniforme é que o algoritmo é simples, mas pode resultar em uma subdivisão desnecessária do espaço.

Subdivisões não uniformes por outro lado sub-dividem o espaço baseado em um critério pré-definido. O critério deverá estar baseado em alguma característica da aplicação particular. Subdivisão não uniforme, em geral, apresenta um algoritmo mais complexo porém mais preciso. Seu alto custo computacional não é uma importante consideração, uma vez que para a maioria das aplicações, o processo é realizado em uma etapa de pré-processamento.

Os esquemas de Subdivisão espacial estão fundamentados no esquema “árvore binária” e os mais comuns esquemas de subdivisão espacial são n-trees e BSP (Binary Space Partitioning). Teoricamente falando, o processo de subdivisão para ambos os esquemas podem ser aplicados para um espaço n-dimensional. Aqui “n” refere-se ao número de divisões realizadas para cada dimensão. Por exemplo, para partição binária divide-se o espaço em dois sub-espaços. Cada operação de subdivisão cria unidades espaciais de igual tamanho.



4XDGWUHH

Podem ser tratados como um caso especial de n-trees em duas dimensões, que subdivide o espaço bidimensional em quatro quadrantes (fig. 3.4).

O principio básico de um quadtree é descrever, através de uma estrutura hierárquica de dados, um objeto e está baseado no principio de decomposição recursiva do espaço bidimensional. A decomposição é governada por propriedades dos dados de ingresso. Por exemplo, o mapa da cidade é, em primeira instância, coberto por um retângulo (representando o nó raiz da árvore), este a sua vez é dividido recursivamente em quadrantes de tamanho decrescente até que o número de segmentos seja menor que certa constante, resultando em uma estrutura espacial hierárquica da árvore.

(9)

)LJXUD Exemplo de quadtree

O quadtree tende a reduzir efetivamente as áreas que não contém dados, conseguindo reduzir o espaço de armazenamento e o tempo de processamento.

Cada quadrante é representado por um nó que trabalha com um sistema de coordenadas cartesianas de modo a localizar com facilidade o ramo da árvore e o caminho que tem que seguir desde a raiz até o ramo da árvore (fig. 3.5). O quadtree é criado ao início do programa. Devido ao comprimento dos segmentos ser pequeno e não haver interseção, o tempo de construção do quadtree é O(n log n), onde n é o número de segmentos na cidade[19] (fig. 3.6).



)LJXUD Relação entre as coordenadas (quadtree)

O processo de decomposição do cenário pretende dividi-lo e estruturá-lo associando os diferentes objetos aos quadrantes. Este

(10)

princípio tem em conta dois objetivos básicos: reduzir o número de objetos contidos no nó e reduzir o nível de subdivisão. O primeiro deles pretende minimizar o número de interseções a calcular, cada vez que o raio chega ao nó. O segundo diminui a quantidade de memória necessária para armazenar a árvore e otimizar o percurso. O quadrado maior, que cobre toda a cidade, chama-se raiz da árvore, aos quadrados não subdivididos folhas e aos demais ramos.

)LJXUD Mapa da cidade de Vigo (Espanha) subdividido usando quadtree[19]

O algoritmo a seguir gera um quadtree adaptado a um conjunto de elementos em que se realizará a procura :

$OJRULWPR4XDGWUHH : para a geração de uma árvore quaternária (quadtree) associada a um conjunto de elementos ( e classificação dos mesmos.

1. Percorrer os elementos calculando os extremos de uma caixa que contenha : (Xmin, X’max) x (Ymin , Y’max). Criar a árvore inicial,

consistente num quadrado (Xmin, Xmax) x (Ymin , Ymax) que incluía ao

retângulo (Xmin, X’max) x (Ymin , Y’max).

2. Para cada elemento Hdo conjunto(

2.1. Calcular seu ponto central [e tamanho característico W

2.2. Identificar a folha h da árvore que contem o ponto x (algoritmo IdenFolha). Calculartamanho ∆h da mesma.

2.3. Enquanto (∆h > f te ). (f é um fator de compromisso memória vs

tempo de processamento)

(11)

2.3.1. Dividir a folha h em h1, h2, h3, h4.

2.3.2. Identificar a folha hi que contem a x.

2.3.3. Fazer h = hi . Calcular tamanho ∆h da folha h.

3. Associar a cada folha da árvore uma lista de elementos relacionados, inicialmente vazia.

4. Para cada elemento Hdo conjunto (.

4.1. Calcular a caixa mínima que o contem : (Xmin, Xmax) x (Ymin ,

Ymax)

4.2. Executar o (algoritmo DeterFolha) com a caixa mínima do elemento e a raiz da árvore.

$OJRULWPR,GHQ)ROKD : Identificação da folha h de uma árvore quaternária que contém um ponto (x,y). Dado adicional : um ramo Uda árvore que contenha ao ponto (por exemplo a raiz da árvore).

1. Fazer h = r.

2. Enquanto (h não seja folha)

2.1. Determinar o quadrante hi de (x,y) com respeito ao centro de

h.

2.2. Fazer h = hi



$OJRULWPR'HWHU)ROKD: Determinação das folhas de uma árvore associadas a um elemento HDados adicionais : rama r da árvore quaternária que contém as folhas de interesse ou folha U da árvore, caixa mínima B que contem ao elemento H.

1. Se o retângulo B intercepta a U

1.1 Se Ué uma folha : adicionar o elemento Hna lista associada na folha U

caso contrário : executar recursivamente o procedimento DeterFolha com os quatro sub-ramos de r.

Com o algoritmo Quadtree consegue-se que as folhas da árvore tenham um tamanho semelhante ao dos elementos aos quais intercepta, e pelo tanto, que o número de elementos por célula seja reduzido.

(12)

$OJRULWPR 3URFXUD3RQWR : Procura do ponto com pré-classificação segundo uma árvore quaternária.

1. Identificar a folha h da árvore quaternária que contém ao ponto (x,y) utilizando o procedimento IdenFolha, com a raiz da árvore como dado inicial.

2. Para cada elemento H da lista associada a folha h : Verificar se o ponto (x,y) está contido em H.

O custo deste algoritmo depende do número de subdivisões do quadrado original. Este número, por sua vez, depende da relação entre o tamanho da zona em estudo e o critério de parada. Em [19] mostra-se um exemplo no qual se estabelece que o número máximo de faces (paredes) não deve ser maior que dez (fig. 3.7). Se um subespaço excede este limite pré-estabelecido, este deverá ser novamente dividido em 4 novos subespaços.

)LJXUD Exemplo de um mapa dividido usando quadtree



2FWUHH

Também chamado de árvore octal, é um caso especial de árvores quadtree para o espaço 3D onde cada subdivisão recursiva resulta em

(13)

23 octantes iguais ao longo de seus três eixos. Se o octante cumpre um certo critério, este é uma folha, senão se divide recursivamente[44] (Fig.3.8). Nesta representação hierárquica os nós podem ser de três tipos 1.- Nó não terminal (aqueles que estão divididos em outros de nível inferior) 2.- Nós terminal vazio, 3.- Nós terminais preenchidos, aqueles que tem um número geralmente reduzido de objetos do cenário. O processo de decomposição do cenário pretende dividi-la e estruturá-la associando os objetos ao octante que compõem os nós terminais do árvore octal.

)LJXUD. Exemplo de uma subdivisão por Octree 



 ÈUYRUH%63 

É um método popular utilizado para representar dados geométricos em uma base de dados de forma a renderizar imagens. Para rádio propagação foi usada em [18,65] para cálculos rápidos de interseções (reduzindo o número de testes de interseção). O esquema também prova que é eficiente para visualização interativa [4]. Leva em conta que o cenário não muda e que só se produz mudanças na direção da visualização e nas localizações das antenas. As informações deste cenário estático são pré-processadas. Esta operação é realizada uma única vez. Durante esta etapa de pré-processamento, algumas relações

(14)

geométricas são obtidas e podem ser usadas para acelerar a determinação dos polígonos visíveis ao transmissor.

De modo a determinar as superfícies visíveis a cada raio, normalmente calcula-se a distância entre a posição da fonte e cada polígono que mapeia o raio. A maioria dos métodos convencionais tenta minimizar o número de polígonos a serem analisados. A técnica BSP busca eliminar totalmente estes cálculos de distância. Ela transforma os dados poligonais (dividindo polígonos e criando novos polígonos quando for necessário) em uma árvore binária que pode ser percorrida em tempo de geração da imagem de modo a fornecer um valor que exprima uma prioridade de visibilidade para cada polígono na árvore. Estas prioridades de visibilidade são atribuídas de modo que, para uma fonte, o polígono mais próximo será aquele com maior prioridade de visibilidade. As prioridades de visibilidade são funções da posição do emissor[7].





)LJXUD Subdivisão do espaço num BSP tree (hiperplano A)

A representação classifica os objetos geométricos no cenário por subdivisões do espaço. O processo inicia-se pela escolha de um plano de divisão (também conhecido na literatura como um hiperplano). Todos os polígonos são classificados espacialmente dependendo se eles estão à esquerda ou à direita de seu hiperplano de subdivisão (fig. 3.9). Entidades que caem sobre o plano são classificadas como tal.

$

% &

(15)

Repetimos em forma recursiva a escolha de um plano de divisão para cada subespaço gerado, obtendo-se a árvore bsp. Este processo recursivo realiza-se até que todos os planos sejam analisados.

Desde o início observa-se que a eficiência de um esquema BSP depende da árvore de partições. É importante notar que, em princípio, um mesmo cenário pode ser representado por diferentes árvores binárias. A melhor árvore é aquela que tem o menor número de divisões e conseqüentemente o menor número de polígonos finais na árvore. Esta regra não é fácil de seguir (imagine um cenário com centenas de polígonos). Uma boa e simples regra é escolher o polígono (hiperplano) que tenha o menor número de interseções. Isto não significa que a escolha seja a melhor possível porque existe mais de um polígono com esta propriedade. Outros indicativos para a escolha do hiperplano são : o número de vezes que este é interceptado por outro polígono e o número de polígonos a frente/trás do hiperplano.

Um método utilizado em [55] consiste em selecionar aleatoriamente dentre o conjunto de possíveis planos de partição um subconjunto de planos de partição FDQGLGDWRVque serão examinados em relação aos demais, sendo apenas um o escolhido. O tamanho do subconjunto (quantidade de planos) é definido no primeiro passo e permanece inalterado até o final da montagem da árvore. Este tamanho, que não precisa ser de grandes dimensões, é capaz de produzir árvores quase mínimas (por exemplo de tamanho de 5 planos), podendo inclusive gerar árvores com tamanho aproximadamente igual à quantidade de polígonos, o que representaria o caso ideal e desejado[7].

Esta representação tem uma clara vantagem na classificação de um ponto no espaço que no pior dos casos é equivalente à profundidade da árvore. A profundidade para uma árvore particionada, bem construída, é tipicamente O(Log N), onde N é o número de superfícies no cenário[4]. Esta é a maior vantagem sobre Brep a qual é tipicamente O(N). Algumas das outras vantagens são: fácil determinação da visibilidade das superfícies (também conhecido como problema das superfícies escondidas) e rápida determinação das superfícies mais próximas que se interceptam com o raio em uma base de dados geométrica.

(16)

Uma árvore balanceada será ótima só se o cenário apresenta numa geometria uniformemente distribuída [4], que não é a situação comum no caso em estudo.

Para a construção de um árvore de partições, uma heurística simples é usada. O conjunto de faces brep são candidatos a serem hiperplanos. Observe que múltiplas faces coincidentes são representadas por um só hiperplano. Inicialmente todas as faces brep estão neste conjunto.

Um hiperplano que cobre a máxima área superficial, resultando em uma mínima divisão de outras faces, é considerado a melhor escolha para subseqüentes procuras de interseção. Porém, melhores árvores podem ser construídos usando modelos de custos esperados (expected cost model) [4]. Uma combinação de métodos heurísticos e um modelo de custo esperado para o desenvolvimento de uma árvore pode ser usado para gerar uma partição final da árvore. Dado que é difícil avaliar um ótimo particionamento do hiperplano em cada passo sem a avaliação de todos os possíveis hiperplanos, vários métodos heurísticos são usados para gerar um conjunto de candidatos a hiperplanos. Logo, usando o modelo de custo esperado. Um dos candidatos a hiperplano é selecionado para minimizar o custo esperado em cada subdivisão-iteração.

O modelo de custo esperado para uma operação sobre uma árvore particionada é dada pelo somatório de custos em cada nó da árvore. O custo para cada árvore é dado, em termos do custo, do filho esquerdo da árvore multiplicado pela probabilidade do ramo, mais o custo do filho direito multiplicado pela probabilidade do ramo, mais algumas constantes de custo para processamento naquele nodo. Os filhos esquerdo e direito também correspondem às sub-regiões negativa (r - ) e positiva(r +) formada pelo hiperplano no nó. A seguinte equação expressa estas relações para uma operação geral sobre a árvore :

]

[

]

[

1

]

[

cos cos cos

7

=

+

S

×

(

7

+

S

+

×

(

7

+

(

W W W

(17)

Para uma operação como a procura de uma superfície, a idéia básica é que a probabilidade do raio bater numa sub-região é diretamente proporcional à área da sub-região com relação à área original, que é dada por :

)

(

/

)

(

U

DUHD

U

DUHD

S

+

=

+ e

)

(

/

)

(

U

DUHD

U

DUHD

S

=

Devido à construção da árvore ser de cima para baixo, deveremos estimar o custo esperado do sub-árvore ainda não construído. Usamos o número de faces em cada semi-espaço como é dado pela fórmula :

8 . cos

[

7

+

]

E

+

(

W similarmente 8 . cos

[

7

]

E

(

W

o expoente 0.8 foi obtido empiricamente[4].



,PSRUWDQGRXPDEDVHGHGDGRVJHRPpWULFD 

Os dados correspondentes aos cenários encontram-se disponíveis geralmente em arquivos dxf. Este formato de arquivos é conhecido amplamente no ambiente CAD ('esenho $ssistido pelo &omputador) e utilizado para intercambiar estas informações com os outros softwares relacionados. Este formato foi desenvolvido primeiramente pelos projetistas do autoCAD e é muito popular devido ao grande número de usuários deste software. A maioria de sistemas CAD podem exportar e importar arquivos DXF pelo menos para dados em 2D. A seguir é apresentado um algoritmo para obter informação necessária para a representação geométrica dos elementos do cenário:

(18)

$OJRULWPR9LV';) Abre um arquivo DXF escolhendo a informação sobre os vértices dos prédios correspondente a um cenário, permite visualizar um gráfico normalizado na tela, com a possibilidade de fazer rotações, escalamento com ajuda de rotinas OpenGL[38].

1 Abrir o arquivo DXF

2 Com a finalidade de normalizar as coordenadas do gráfico, achamos as coordenadas (x,y,z) de máximo valor usando o código de grupo “EXTMAX” 3 Procuramos pelo código de grupo “ENTITIES” e armazenamos o índice

correspondente a sua linha em uma variável por exemplo “OF´ os grupos anteriores a esta linha não são importantes para nossos objetivos 4 Entanto (lc seja menor que o número total de linhas do arquivo DXF)

4.1 Conteúdo da linha atual tem o código de grupo da variável X ? 4.1.1 Sim :armazenar numa estrutura as coordenadas

X(linha atual +1), Y(linha atual+3), Z(linha atual +5) pular 5 linhas desde a linha atual;

4.1.2 Não : adicionar ao valor de linha atual 1, voltar 4.1. 5 Achar o número total de prédios.

 Gerar estes prédios na Tela, usando as livrarias gráficas OpenGL



































Referências

Documentos relacionados

 Malhas poligonais: coleção de polígonos (faces planares) que em conjunto.. definem a fronteira da superfície de um

De acordo com Gardner e Altman (1989), é possível assumir nível de confiança de 95,22% nos resultados gerais obtidos nesta primeira rodada do estudo que indicam que as empresas

anteriormente.Neste momento, cada grupo deverá medir as dimensões das figuras, calcular e registrar numa folha de papel ofício as áreas encontradas através das fórmulas usuais:..

 Um palíndromo é uma sequência de símbolos que se mantém a mesma quando lida de trás para frente, desprezando espaços e sinais de pontuação.. Palíndromos

ASSUNTO: Convalidação de estudos e validação nacional dos títulos obtidos no curso de Mestrado em Odontologia, área de concentração Endodontia, ofertado pela Universidade Federal

Apesar das alterações relatadas, nenhum animal apresentou leucograma de estresse agudo, caracterizado por neutrofilia e linfocitose durante as coletas realizadas, indicando que

Solucao: Criar um // grafo direcionado apropriado (grafo de restricoes) e encontrar o menor // caminho de um vertice artificial v_{n+1} p/ todos os demais vertices.. Achar

10) As mediatrizes de dois lados consecutivos de um polígono regular formam um ângulo