t.c.c. aplicativo em ncl e simulação de colisão e explosão de satélite artificial
DESCRIPTION
Trabalho de conclusão do curso de Ciência da Computação, que apresenta um aplicativo desenvolvido na linguagem de programação NCL (Padrão brasileiro de TV Digital) que tem como objetivo incluir interatividade a uma animação criada através do software Blender 3D, que simula a colisão de um lixo espacial (objeto qualquer) com um satélite artificial de comunicações na órbita terrestre. Esta animação simula tal colisão que no caso causa uma explosão, demonstrando as causa e consequências de tal problema.TRANSCRIPT
CENTRO UNIVERSITÁRIO SERRA DOS ÓRGÃOS
CENTRO DE CIÊNCIAS E TECNOLOGIA
CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO
APLICATIVO EM NCL E SIMULAÇÃO DE EXPLOSÃO
DE UM SATÉLITE ARTIFICIAL
Autor:
Jeferson Gomes Machado
Orientador:
José Roberto de Castro Andrade
Teresópolis
Dezembro de 2012
i
MACHADO, Jeferson Gomes. Aplicativo em NCL e a Simulação
de Explosão de um Satélite Artificial. Teresópolis: Centro
Universitário Serra dos Órgãos, 2012.
Orientador: José Roberto de Castro Andrade, M.Sc.
Monografia – CURSO DE BACHARELADO EM CIÊNCIA DA
COMPUTAÇÃO DO CENTRO UNIVERSITÁRIO SERRA DOS
ÓRGÃOS.
1.sistema de partículas, 2.NCL 3.satélite artificial
ii
Trabalho preliminar de conclusão de curso apresentado
ao Centro Universitário Serra dos Órgãos - Curso de
Bacharelado em Ciência da Computação - como um dos
requisitos para obtenção do título de Bacharel em Ciência
da Computação.
ELABORADO POR JEFERSON GOMES MACHADO E APROVADO POR
TODOS OS MEMBROS DA BANCA EXAMINADORA. FOI ACEITO PELO
CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO.
TERESÓPOLIS, 05 de dezembro de 2012.
BANCA EXAMINADORA:
_______________________________________
José Roberto de Castro Andrade, M.Sc
_______________________________________
João Fernando Diniz Falcão, M.Sc
______________________________________
Lívia Monnerat Castro, M.Sc
Teresópolis
Dezembro de 2012
iii
DEDICATÓRIA
Dedico este trabalho, primeiramente a Deus, pois sem Ele nada disso seria
possível. A toda a minha família, especialmente aos meus pais que me deram força e me
incentivaram a continuar, fazendo o possível para que eu estivesse aqui hoje buscando os
meus objetivos. Aos meus amigos que me apoiaram e compreenderam cada final de semana
que eu fiquei em casa estudando, ao pessoal do ônibus por todos os momentos de
descontração e diversão em meio ao cansaço das viagens diárias até à faculdade e em especial
ao Seu Gerson, o melhor motorista que podíamos ter que me incentivou tanto a continuar,
com suas longas conversas, de palavras simples mas que surtiram muito efeito. Ao meu
orientador, José Roberto, pois sem ele não seria possível o desenvolvimento deste trabalho e a
todos que direta ou indiretamente contribuíram para que eu estivesse aqui hoje.
iv
RESUMO
O lixo espacial existente no espaço orbital da Terra vem aumentando
consideravelmente ao longo do tempo, causando preocupações principalmente aos órgãos
responsáveis e às empresas que atuam na área. O risco de colisão de tais objetos com
satélites em operação torna–se mais eminente à medida que os detritos espaciais aumentam
e permanecem na órbita terrestre sem controle. Este trabalho tem como objetivo gerar uma
animação que demonstra como seria uma colisão entre um detrito espacial e um satélite
geoestacionário de comunicações, o que, na circunstância proposta, ocasiona a explosão do
satélite artificial. Para isto, foram modelados os objetos necessários à representação de tal
acontecimento, utilizando-se a técnica de sistemas de partículas para a criação do efeito da
explosão, bem como levando-se em consideração a dinâmica orbital que atua nas partes
remanescentes do satélite. A mídia é apresentada através de uma interface inovadora,
utilizando-se a linguagem NCL, voltada principalmente para a concepção de aplicativos em
TV Digital e Web, que permite ao usuário um alto nível de interação, o que possibilita dar
mais ênfase ao conteúdo adicional pertinente ao assunto.
Palavras chave: 1.sistema de partículas, 2.NCL 3.satélite artificial.
v
ABSTRACT
The space junk, from the Earth's orbital space has been increased considerably
over time, causing concerns, above all, to the organs and companies working in the area.
The risk of collision between such objects and satellites in operation makes more prominent
as the space debris are increased and remain in orbit without control. This paper aims to
generate an animation that shows how a collision between the space debris and a
geostationary satellite communications would be, which, in fact, leads to the explosion of
the proposed artificial satellite. To this, objects necessary for the representation of such an
event were modeled, using the technique of particle systems for creating the effect of the
explosion, as well as taking into consideration the orbital dynamics that acts on the
remaining parts of the satellite. The media is presented through an innovative interface,
using the NCL, mainly focused on the design of applications in Digital TV and Web, which
allows the user a high level of interaction, allowing more emphasis on additional content
relevant the subject.
Keywords: 1. particle systems, 2.NCL 3. artificial satellite
vi
SUMÁRIO
LISTA DE FIGURAS ......................................................................................................... VIII
LISTA DE SIGLAS ................................................................................................................. X
1 INTRODUÇÃO ................................................................................................................ 11
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................. 12
2.1 EFEITOS ESPECIAIS ....................................................................................................... 12
2.1.1 SISTEMAS DE PARTICULAS ...................................................................................... 12
2.1.1.1 PARTÍCULAS .................................................................................................. 13
2.1.1.2 FASES DO SISTEMA DE PARTÍCULAS .............................................................. 14
2.1.1.3 CLASSIFICAÇÃO DOS SISTEMAS DE PARTÍCULAS .......................................... 14
2.1.2 TEXTURIZAÇÃO E RENDERIZAÇÃO ......................................................................... 15
2.2 LIXO ESPACIAL ............................................................................................................ 16
2.3 DINÂMICA ORBITAL ..................................................................................................... 21
2.3.1 ÓRBITAS DOS SATÉLITES ARTIFICIAIS ..................................................................... 23
2.4 A LINGUAGEM NCL ............................................................................................... 25
3 DESENVOLVIMENTO DA ANIMAÇÃO ................................................................... 27
3.1 FERRAMENTAS UTILIZADAS ........................................................................................ 27
3.2 MODELAGEM DOS OBJETOS DA CENA .......................................................................... 29
3.2.1 SATÉLITE ARTIFICIAL ............................................................................................. 29
3.2.2 PLANETA TERRA ..................................................................................................... 29
3.3 COLISÃO E EXPLOSÃO EM ÓRBITA ................................................................................ 33
3.4 MOVIMENTO DA CÂMERA E GERAÇÃO DA ANIMAÇÃO ............................................... 35
vii
4 O APLICATIVO EM NCL ........................................................................................... 37
4.1 ESTRUTURA DE UM DOCUMENTO NCL ........................................................................ 39
4.2 DESENVOLVIMENTO DO APLICATIVO .......................................................................... 40
4.3 TESTES ........................................................................................................................ 43
4.4 PROBLEMAS ENCONTRADOS ........................................................................................ 45
5 RESULTADOS OBTIDOS ............................................................................................ 47
6 CONCLUSÕES E SUGESTÕES PARA TRABALHOS FUTUROS ......................... 55
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 56
APÊNDICE – CÓDIGO NCL .............................................................................................. 58
viii
LISTA DE FIGURAS
Figura 1 - Sequência de imagens do filme Star Trek II: A Ira de Khan ................................... 12
Figura 2 - Partículas dinâmicas e estáticas................................................................................14
Figura 3 - Representação do „congestionamento‟ espacial ..................................................... 16
Figura 4 - Órbita da Estação Espacial Internacional ................................................................ 18
Figura 5 - Lixo espacial na órbita terrestre ............................................................................... 19
Figura 6 - Número mensal de objetos catalogados na órbita da Terra por tipo ........................ 20
Figura 7 - Movimento de um satélite geoestacionário ............................................................. 24
Figura 8 - Representação da colisão entre dois satélites artificiais .......................................... 24
Figura 9 - Interface do Blender Versão 1.6 .............................................................................. 28
Figura 10 - Interface do Blender Versão 2.6 ............................................................................ 28
Figura 11 –Satélite artificial da série BrasilSat x Modelagem ................................................. 29
Figura 12 –Mapa dos continentes . ........................................................................................... 30
Figura 13 –Luzes noturnas ....................................................................................................... 31
Figura 14 – Relevo . ................................................................................................................. 31
Figura 15 – Reflexo. ................................................................................................................. 32
Figura 16 – Nuvens. ................................................................................................................. 32
Figura 17 – Nós da modelagem da Terra ................................................................................. 33
Figura 18 – Animação da quebra do satélite artificial .............................................................. 34
Figura 19 – Partes remanescentes de uma colisão .................................................................... 35
Figura 20 – Caminho da câmera .............................................................................................. 36
Figura 21 – Visão de layout do Composer (Tela Principal) ..................................................... 37
Figura 22 – Visão de layout do Composer (Tela 1) ................................................................ 38
Figura 23 – Visão de layout do Composer (Tela 2) ................................................................ 39
ix
Figura 24 – Estrutura de um documento NCL ........................................................................ 39
Figura 25 – Visão de Layout do Composer (Regiões) ............................................................. 41
Figura 26 – Visão Estrutural do Aplicativo no Composer ....................................................... 42
Figura 27 – Tela Textual do Aplicativo no Composer ............................................................. 43
Figura 28 – Página do NCL Validation Service com erros inseridos propositalmente ............ 44
Figura 29 – Página do NCL Validation Service sem erros ...................................................... 45
Figura 30 – Tela de Menu do aplicativo ................................................................................... 48
Figura 31 – Tela inicial do aplicativo ....................................................................................... 49
Figura 32 – Animação sendo apresentada. ............................................................................... 49
Figura 33 – Tela com a animação sendo exibida juntamente com outros elementos. .............. 50
Figura 34 – Tela com gráfico maior e a animação reduzida. ................................................... 51
Figura 35 – Tela com a animação reduzida e um segundo vídeo em tela grande. ................... 51
Figura 36 – Gráfico sendo exibido a partir da tela de menu. ................................................... 52
Figura 37 – Texto sendo exibido a partir da tela de menu. ...................................................... 53
Figura 38 – Vídeo sendo exibido a partir da tela de menu. ...................................................... 53
Figura 39 – Animação sendo exibido a partir da tela de menu. ............................................... 54
x
LISTA DE SIGLAS
2D Duas dimensões
3D Três dimensões
ABNT Associação Brasileira de Normas Técnicas
GNU General Public License
HTML HyperText Markup Language
ISS International Space Station
IP Internet Protocol
IPTV Internet Protocol Television
ITU-T International Telecommunication Union – Telecommunication Standardization
Sector
LAWS Laboratório de Sistemas Avançados da Web
MPEG Motion Picture Experts Group
NASA National Aeronautics and Space Administration
NCL Nested Context Language
NCM Nested Context Model
ONU Organização das Nações Unidas
PUC-Rio Pontifícia Universidade Católica do Rio de Janeiro
XML Extensible Markup Language
11
1 INTRODUÇÃO
O problema do lixo espacial, resultante de objetos criados pelo homem e que
permanecem em órbita da Terra sem controle, está se agravando a cada dia, gerando uma
preocupação constante de possíveis colisões entre satélites comercias em operação e tais
objetos. Através do uso da computação gráfica é possível simular os efeitos físicos resultantes
de uma possível colisão entre tais objetos, realçando a necessidade de atenção por parte de
empresas operadoras de satélites, fabricantes e órgãos governamentais.
Este trabalho descreve a criação de uma simulação gráfica da explosão, a partir da
colisão de um objeto com um satélite de comunicações em órbita da Terra, utilizando para tal
fim, softwares adequados. Para a geração do efeito de explosão foi utilizada a técnica de
sistemas de partículas e realçado com o uso de imagens, texturas, posicionamento da câmera
virtual e iluminação adequada. O comportamento das partes remanescentes do satélite
artificial é simulado levando-se em consideração a física envolvida no ambiente espacial,
possibilitando a visualização dos efeitos da colisão.
A animação gerada foi inserida, juntamente com outros elementos multimídias
para a criação de um aplicativo interativo em NCL, agregando informações relevantes sobre o
assunto, com o objetivo de divulgar suas causas e consequências e apresentar o problema
tanto para a divulgação da necessidade de busca de soluções como para gerar debates sobre o
assunto.
Este trabalho está dividido em 6 capítulos. O capítulo 2 traz a fundamentação
teórica. O capítulo 3 descreve o desenvolvimento da animação. O capítulo 4 refere-se a
linguagem de programação NCL e a criação do aplicativo interativo. O capítulo 5 apresenta
os resultados obtidos. E, finalmente, o capítulo 6 apresenta as conclusões e sugestões para
trabalhos futuros.
12
2 FUNDAMENTAÇÃO TEÓRICA
2.1 Efeitos especiais
Um dos elementos fundamentais para a obtenção de realismo em uma cena de
animação é uma boa modelagem dos objetos que a compõem. Contudo, através de métodos
tradicionais, existe certa dificuldade para a modelagem de objetos cujo formato não é bem
definido, tais como fumaça, fogo, nuvem, explosão, entre outros. Para tanto existem técnicas
tais como a de sistema de partículas, que possibilita a criação de sistemas complexos com um
alto nível de realismo.
2.1.1 Sistema de partículas
Com o objetivo de criar uma sequência de efeitos especiais para o filme Star Trek
II: A Ira de Khan, do estúdio Paramount Pictures, 1982 (Figura 1), William T. Reeves
publicou um artigo intitulado, Particle Systems – A Technique for Modeling a Class of Fuzzy
Objects, REEVES (1983).
Figura 1- Sequência de imagens do filme Star Trek II: A Ira de Khan,
(Fonte: Sequência de imagens do filme Star Trek II: A Ira de Khan, Paramount Pictures, 1982)
13
Nesse trabalho o Reeves introduziu o uso de um paradigma de sistemas de
partículas como uma técnica baseada em processos randômicos com partículas independentes
que se moviam por influências externas. Reeves demonstrou que aplicando algumas das leis
fundamentais da Mecânica de Newton em um conjunto virtual de partículas seria possível
modelar elementos com forma incerta e, a partir daí, criar qualquer efeito e/ou modelar
qualquer objeto. O trabalho de Reeves foi um grande avanço para a Computação Gráfica que,
até então consistia sobretudo de formas criadas a partir de polígonos e vértices fixas.
Com o decorrer do tempo a técnica de sistema de partículas evoluiu com a
incorporação de restrições e modificações no comportamento das partículas, permitindo a
melhora na qualidade e a criação de novos efeitos.
Resumindo, um sistema de partículas é composto por uma quantidade
configurável de partículas que têm seu comportamento controlado por atributos que podem
ser definidos em um valor fixo ou randômico dentro de limites predefinidos, de acordo com as
propriedades do elemento a ser simulado.
2.1.1.1 Partículas
A Mecânica de Newton foi arquitetada sobre quatro grandezas essenciais: espaço,
tempo, massa e força. Seguindo esse axioma, as partículas são elementos que têm massa que
podem ser definidas como fixa ou estocástica, da mesma maneira que posição definida no
espaço x, y, z e velocidade. Por não possuírem extensão espacial fixa e responderem a forças
externas, além de proporcionarem a aplicação de cor e transparência, entre outros
componentes, é possível a simulação de inúmeros efeitos, com pouco esforço humano e alto
nível de realismo. Por terem um tempo de vida (medido em quadros), que vai desde sua
geração até a extinção configurável, a qualquer momento novas partículas podem ser geradas,
bem como as já existentes serem extintas (BARAF & WIKIN, 1997).
14
Partículas podem ser tanto estáticas para a modelagem de elementos, tais como
cabelos, pelos ou grama, por exemplo, ou animadas para a representação de fenômenos tais
como a chuva ou a neve, como pode ser observada na Figura 2 a representação das partículas
dinâmicas na primeira imagem e no estado estático na segunda.
Figura 2 - Partículas dinâmicas e estáticas
(Fonte: http://wiki.blender.org/index.php/File:Blender3D_Particles-Mode-Image.jpg)
2.1.1.2 Classificação dos sistemas de partículas
Os sistemas de partículas são classificados em três grupos:
Estocásticos: Neste caso as partículas são mais independentes umas das outras. São
apropriadas para as simulações cujo foco principal é a cor e a transparência, como na
simulação de fogo, por exemplo.
Estruturados: Mais apropriados para a modelagem de árvores e grama, por exemplo,
por obedecerem a uma hierarquia.
Orientados: Neste caso, as partículas tendem a comporem superfícies.
2.1.1.3 Fases dos sistemas de partículas
Num sistema, as partículas passam por três fases distintas: geração, dinâmica e
morte (REEVES, 1983).
15
• Geração: É nesta fase que os atributos que determinam o comportamento das
partículas são definidos, recebendo um valor inicial. A todo o momento novas partículas são
geradas e as antigas são destruídas. Essa geração acontece de forma randômica, dentro de um
espaço pré-estabelecido chamado objeto emissor.
• Dinâmica: Os valores dos atributos das partículas definidos na geração podem
ser fixos ou alterados aleatoriamente ao longo do tempo.
• Extinção: A última fase pela qual passa a partícula é a fase de extinção, processo
no qual a partícula desaparece.
As partículas possuem um tempo de vida configurável, definido em quantidade de
quadros que é iniciado com o valor 0 (zero) e acrescido de 1 a cada novo quadro. Quando o
tempo de vida pré-definido é atingido, a partícula é extinta.
Além do tempo de vida, uma partícula pode ser extinta por inúmeros outros
fatores, tais como, se um dos atributos desta partícula ultrapassar um valor máximo definido,
se a transparência desta for tanta que ela não possa mais ser vista, partículas que se
encontrarem fora da região visível do observador sem possibilidade de retorno e/ou ao
tocarem o solo também podem ser eliminadas, diminuindo assim o custo computacional da
animação, por exemplo.
2.1.2 Texturização e Renderização
O processo de utilização de fotografia ou imagens produzidas em computador
como textura em um determinado objeto e/ou superfícies, chamado de texturização é uma
funcionalidade muito importante presente em diversos softwares de modelagem 3D,
proporcionando um maior nível de realismo à cena.
As texturas são aplicadas de forma que as imagens 2D cubram a superfície 3D
envolvendo - a como uma espécie de „pele‟, dando assim uma aparência mais próxima da real.
16
O último passo numa animação 3D é a renderização. Após a modelagem e
construção da sequência de animação, torna-se necessário efetuar a renderização, que resulta
na geração da cena com seus devidos acabamentos simulando condições reais, levando em
consideração diversos aspectos, tais como iluminação, texturas e materiais, superfícies etc.
Originando imagens estáticas e/ou vídeos mostrando a imagem final a partir do
enquadramento feito por uma determinada câmera virtual.
Quanto mais detalhada for a cena, mais tempo levará para que o processo de
renderização seja finalizado, bem como esse tempo também dependerá do hardware utilizado
para este processo.
2.2 Lixo espacial
O dia 04 de outubro de 1957 marcou o lançamento do primeiro satélite artificial.
Até hoje, foram lançados cerca de 13.000 (treze mil) satélites, dos quais a maior parte virou
lixo espacial e somente cerca de 880 (oitocentos e oitenta) permanecem ativos,
desempenhando importantes funções, tais como a de telecomunicações e a coleta de dados. A
figura 3 é uma simulação feita pela Agência Espacial Européia, demonstrando a quantidade
de satélites em órbita da Terra.
Figura 3 - Representação do „congestionamento‟ espacial
(Fonte: http://g1.globo.com/Noticias/Ciencia/0,,MUL401699-5603,00-FOTOS+MOSTRAM+LIXO
+ESPACIAL+NA + ORBITA+DA+TERRA.html)
17
Contudo, após o término da vida útil dos satélites, que é de até cerca de 20 anos,
esses satélites em desuso, fragmentos de satélites, partes de foguetes, restos de missões, bem
como todos os objetos criados por seres humanos presentes em órbita ao redor da Terra e que
não têm nenhuma função útil são considerados lixo espacial, tecnicamente chamados de
detritos espaciais, são definidos pela Agência Espacial Norte Americana, a NASA como
“arma de energia cinética de altíssima velocidade, não guiada”, percorrem o espaço sem
nenhum tipo de controle, a uma velocidade de cerca de 7 Km/s (sete quilômetros por
segundo) e devido às altas velocidades dos satélites, mesmo um fragmento muito pequeno
poderia danifica-lo ou até mesmo destruí-lo, dependendo do ponto em que o impacto ocorra.
Segundo estimativas da NASA existem cerca de 20.000 (vinte mil) objetos
rastreados na órbita terrestre, com mais de 10 cm (dez centímetros) de diâmetro, 50.000
(cinquenta mil) entre 1 (um) e 10 (dez) cm e cerca de 500.000 (quinhentos mil) menores.
Destes cerca de 2.000 toneladas (duas mil toneladas) estão na órbita baixa da Terra (Low
Earth Orbit). Também existe uma grande quantidade de detritos na órbita geoestacionária, a
GEO (do inglês, Geostationary Orbit), local onde se encontram os satélites de comunicação.
Existem também muitos objetos em trajetória excêntrica, que podem transladar por diferentes
órbitas.
Com este problema que vem se agravando a cada dia, existe uma grande
preocupação com possíveis colisões entre satélites em operação comercial e tais objetos. Um
exemplo disto é a preocupação com a Estação Espacial Internacional, que tem que ter seu
rumo desviado várias vezes por ano, para desviar destes destroços. Segundo estudos da
NASA, um objeto de cerca de 1 mm (um milímetro) de comprimento, já seria capaz de
quebrar cabos de dados e de força secundários, por isso, a ISS (Estação Espacial
Internacional) é considerada a mais protegida espaçonave a ser lançada, áreas como
18
compartimentos habitáveis são capazes de resistir ao impacto de objetos de até 1 cm (um
centímetro) de diâmetro.
A figura 4 ilustra a orbita da ISS em verde e o Anel Debris em vermelho, cujos
fragmentos foram originados pelo teste de um míssil chines em dezembro de 2007. No qual a
China lançou um míssil contra um de seus satélites artificiais, que segundo informações
oficiais do governo chines teve o objetivo de estudar tal acontecimento.
Figura 4 - Órbita da Estação Espacial Internacional
(Fonte: Tela de um vídeo criado pela AGI - http://www.agi.com)
A NASA concluiu que os impactos de detritos orbitais da Terra tinham o
potencial para tornarem-se um perigo maior do que o ambiente meteoróide natural. Com isso,
a NASA criou um programa de detritos espaciais, chamado NASA’s Orbital Debris Program,
que começou oficialmente em 1979. A figura 5, feita pela NASA, mostra a quantidade de lixo
espacial na órbita terrestre.
19
Figura 5 - Lixo espacial na órbita terrestre
(Fonte: http://orbitaldebris.jsc.nasa.gov/photogallery/beehives.html#leo)
A NASA publica trimestralmente uma revista sobre detritos espaciais, onde é
divuldado um relatório gráfico sobre os objetos em órbita da Terra oficialmente catalogados
pela rede espacial norte-americana, a Orbital Debris Quarterly News. Pode-se observar no
gráfico a seguir, Figura 6, o aumento considerável do lixo espacial no decorrer do tempo.
20
Figura 6 - Número mensal de objetos catalogados na órbita da Terra por tipo.
(Fonte: Orbital Debris Quarterly News – Volume 15, Issue 1, January 2011 - Traduzido)
Houve dois eventos que contribuiram consideravelmente para o aumento do
número de detritos espaciais. Em 2007, a China lançou um míssil contra um dos seus satélites
meteorológicos, o Fengyun 1-C. A destruição do satélite criou mais de 3.000 (três mil)
objetos rastreáveis e um número estimado de 150.000 (cento e cinquenta mil) partículas de
detritos maiores que 1 cm (um centimetro). Aumentando em cerca de 15% (quinze porcento)
a quantidade de lixo espacial. Em 2009, houve uma colisão entre um satélite norte-americano
ativo, o Iridium-33 com um satélite russo inativo, portanto sem controle.
O Lixo espacial pode reentrar na Terra, dependendo da sua órbita, naturalmente,
após algum tempo. Porém, a maior parte desses objetos não atinge o solo. Objetos que
estejam na órbita da Terra, sem controle, dependendo da altitude em que se encontram, podem
ser atraídos pelas forças físicas naturais e/ou colidirem com a atmosfera, devido à trajetória
21
que possuem e reentrarem no planeta. Porém, a maior parte desses objetos se fragmenta antes
de atingirem a superfície, devido ao tempo de exposição às altas temperaturas e às
desacelerações sofridas na reentrada, o que torna os materiais maleáveis e com os picos de
desacelerações (torções e compressões excessivas), o corpo se deforma, rompendo os limites
de resistência dos materiais. Dependendo da sua resistência, o objeto pode se desintegrar
totalmente, como acontece na maioria dos casos, ou chegar à superfície terrestre. Contudo,
não é possível saber exatamente o ponto em que o objeto cairá, pois a trajetória poderá ser
alterada por diversos fatores, entretanto, como a maior parte do planeta é coberto por água, a
probabilidade de tais objetos atingirem uma pessoa é mínima.
A comunidade internacional vem buscando resolver esse grave problema que
ameaça o futuro da comunicação via satélite e as missões espaciais. Porém, ainda não existem
tecnologias disponíveis para se retirar esse lixo espacial de órbita. Um primeiro passo no
sentido de diminuir essa proliferação dos detritos veio em 2007, com a divulgação, pela ONU,
de um documento contendo diretrizes para a exploração espacial. Entretanto, esse documento
é uma simples recomendação que propõe limitar o número de dejetos espaciais liberados,
tentar diminuir os riscos de colisão, evitar a destruição intensional de estágios de foguetes e
elevar a órbita dos satélites geoestacionários ao fim da sua vida útil, de modo que estes não
apresentem ameaças à exploração espacial, entre outras indicações.
2.3 Dinâmica Orbital
Seguindo uma ideia proposta por Newton em 1687 em seu livro Philosophie
Naturalis Principia Mathematica (Princípios Matemáticos da Filosofia Natural), onde ele
propôs as três leis fundamentais da mecânica. Aplicando princípios matemáticos na descrição
de fenômenos naturais relacionados ao movimento foi possível a descrição de uma teoria de
como seria o lançamento de um satélite artificial.
22
Existem diversos tipos de satélites artificiais que são agrupados de acordo com a
sua missão e que são divididos em dois grupos distintos: 1. Satélite de uso civil - com
objetivos pacíficos, comerciais ou não, tais como os de comunicações, pesquisas,
levantamento de recursos naturais, por exemplo. 2. Satélites de uso militar.
Os satélites artificiais aproveitam a força gravitacional da Terra, que faz com que
os corpos sejam atraídos uns pelos outros, para se manterem na órbita terrestre. Quanto mais
distante do planeta, menor a força gravitacional. Para manter um satélite artificial em órbita é
necessário que a altitude e a sua velocidade sejam tais que haja um equilíbrio entre a força
centrífuga e a da gravidade.
O trecho a seguir, que está numa linguagem adaptada, faz parte do livro, A
Treatise of the System of the World, (Um Tratado do Sistema do Mundo), de 1728, onde Isaac
Newton descreveu o que aconteceria se alguém atirasse uma pedra horizontalmente do pico de
uma montanha que se projetasse acima da atmosfera, explicando como a força gravitacional
manteria um objeto em órbita da Terra (ASSIS, 2008).
"Para explicar como os satélites se mantêm em suas órbitas consideremos o
movimento de um corpo lançado inicialmente com uma trajetória horizontal. Por
causa de seu peso, o corpo sai de sua trajetória reta, descreve uma curva e cai sobre
o solo. Quanto maior a velocidade com que é lançado, mais longe ele vai antes de
cair sobre a terra. Observando a representação da Terra e as linhas curvas que o
corpo percorreria se projetado em uma direção horizontal do topo de uma alta
montanha, com velocidades cada vez maiores. Suponha que não há resistência do
ar. Aumentando cada vez mais a velocidade inicial do corpo ele cairá cada vez
mais longe até que, quando a velocidade inicial for suficientemente grande, acabará
percorrendo toda a circunferência da Terra, voltando à montanha de onde foi
lançado. Agora, se o corpo for projetado em direções paralelas ao horizonte, de
grandes alturas, dependendo de sua velocidade inicial e da força da gravidade na
23
altura em que está ele descreverá círculos concêntricos ou elipses e permanecerá
girando nessas órbitas celestes do mesmo modo que a Lua gira em torno da Terra e
os planetas giram em torno do Sol". (NEWTON, 1728, apud ASSIS, 2008).
2.3.1 Órbitas dos satélites artificiais
Os satélites artificiais ocupam as mais diversas órbitas, podendo ser polares,
circulares ou elípticas, bem como altitudes variando entre centenas a milhares de quilômetros
e inclinações e formas distintas.
Os satélites artificiais de comunicações são geoestacionários, ou seja, ficam
perpendiculares sobre um mesmo ponto da superfície do planeta, eles possuem órbita
coincidente com a Linha do Equador e ficam a uma altitude de cerca de 35.840 km (trinta e
cinco mil oitocentos e quarenta quilômetros) da superfície da Terra, onde a força centrífuga e
a força centrípeta do planeta se anulam, acompanhando o movimento de rotação do planeta
com uma velocidade orbital de 11.000 km/h (onze mil quilômetros por hora). Já os satélites
não geoestacionários descrevem várias órbitas por dia.
Os satélites artificiais sofrem perturbações causadas pela ação de forças físicas
que alteram sua posição e orientação em órbita, obrigando a realização de manobras orbitais
periódicas para a realização da correção da posição. As manobras são executadas pelos
disparos de jatos que provocam um impulso ao satélite imprimindo velocidade em direção
contrária aos efeitos da perturbação. As principais perturbações que agem sobre um satélite
geoestacionário são a Gravitação luni-solar que afeta a sua órbita aumentando o valor da sua
inclinação, a Triaxialidade terrestre que provocam uma aceleração longitudinal no satélite, e
sua deriva na direção Leste-Oeste mudando a forma da sua órbita aumentando e diminuindo a
velocidade alterando o eixo de rotação e a altitude do satélite artificial.
A junção dessas forças físicas causa um movimento em forma de „oito‟ no
satélite, como pode ser observado na figura 7.
24
Figura 7 - Movimento de um satélite geoestacionário.
(Fonte: Tela de um vídeo criado no Laboratório Star One – UNIFESO)
No caso de uma colisão em órbita, as partes do satélite tendem a dar continuidade
ao movimento que estavam fazendo, como pode ser observado na representação da colisão
entre o satélite russo inativo da série Cosmos com um americano ativo, o Iridium 33 ocorrido
em 2009 (Figura 8).
Figura 8 - Representação da colisão entre dois satélites artificiais
(Fonte: Telas de um vídeo criado pela AGI - http://www.agi.com)
25
2.4 A Linguagem NCL
A linguagem NCL (Nested Context Language), desenvolvida pela PUC-RIO, é
uma linguagem declarativa hipermídia baseada no modelo conceitual NCM (Nexted Context
Model) que representa os conceitos estruturais além das relações e eventos entre os dados
através de nós, com identificador, conteúdo e conjuntos de âncoras entre outors. A
linguagem tem um de alto nível de abstração e é voltada principalmente para concepção de
aplicativos para TV Digital e para a Web.
NCL é a linguagem declarativa do middleware Ginga. O chamado GINGA-
NCL é a camada de software responsável pela execução das aplicações NCL permitindo a
execução de aplicativos independentemente das plataformas de hardware e software. Esta é
uma tecnologia nacional, reconhecida mundialmente, que se tornou recomendação ITU-T
para serviços IPTV (transmissão de conteúdo através do protocolo IP) e padrão ABNT do
Sistema Brasileiro de TV Digital Terrestre, que possibilita a utilização de múltiplos
dispositivos de exibição, interligados através de redes.
“Ginga-NCL é o subsistema Ginga desenvolvido pela PUC-Rio que visa prover
uma infraestrutura de apresentação para aplicações declarativas escritas na
linguagem NCL (Nested Context Language). NCL é uma linguagem de aplicação
XML com facilidades para a especificação de aspectos de interatividade,
sincronismo espaço-temporal entre objetos de mídia, adaptabilidade, suporte a
múltiplos dispositivos e suporte à produção ao vivo de programas interativos não
lineares.” (GINGA NCL, 2012)
Voltada principalmente para aplicações de TV Digital e WEB, a linguagem define
como objetos de mídia são estruturados e relacionados no tempo e espaço, possibilitando a
utilização de diversos objetos de mídia, tais como imagens, vídeos, áudios e textos nos mais
26
distintos formatos, além de objetos com código imperativo e declarativo, como HTML por
exemplo.
Com a utilização de um plugin especifico para a reprodução de conteúdos
hipermídia para navegadores Web, é possível a reprodução de um aplicativo interativo, que
pode ser disponibilizado na internet, em qualquer computador ou pode ser enviado a um
televisor com suporte a tal funcionalidade.
Um desenvolvedor ao utilizar a NCL, se preocupa em desenvolver um aplicativo
com um foco especifico. O ambiente GINGA-NCL permite o uso de código imperativo
através de código na linguagem de script em LUA, os chamados scripts NCLua. Segundo
Soares & Barbosa: “Desde o inicio do seu desenvolvimento, no inicio dos anos 1990, Lua foi
projetada para ser usada em conjunto com outras linguagens, não sendo comum encontrar
programas escritos puramente em Lua.” (SOARES & BARBOSA, 2009).
27
3 O DESENVOLVIMENTO DA ANIMAÇÃO
Este capítulo descreve o software utilizado para o desenvolvimento deste trabalho
e como foi realizada a modelagem dos objetos e concepção da animação.
3.1 Ferramentas Utilizadas
Para a modelagem, desenvolvimento da animação e renderização foi utilizado o
software Blender 3D, na sua versão 2.60, um software livre disponível sobre a licença GNU, e
desenvolvido e mantido pela Blender Foundation com sede na Holanda. Este software
permite a modelagem de objetos para a criação de animações 3D incluindo efeitos especiais
com um alto nível de realismo, entre diversas outras funcionalidades.
Criado em meados da década de 1990, pelo estúdio de animação NeoGeo, com o
intuito de desenvolver animações próprias, o Blender foi crescendo, passando a ser
desenvolvido e comercializado por uma outra empresa. Porém após uma série de dificuldades
encontradas pela empresa, a licença sobre o software foi vendida e o Blender passou a ser de
código aberto. Em 2002, Ton Rosendaal fundou uma organização sem fins lucrativos, a
Blender Foundation com o objetivo de encontrar uma maneira de continuar a desenvolver e
promover o Blender como um projeto Open Source, como é até os dias de hoje.
Com o passar do tempo foram lançadas diversas atualizações e o software vem
evoluindo rapidamente, tornando–se mais dinâmico e com uma interface mais agradável,
como pode ser constatado comparando as Figuras 9 e 10. A Figura 9 mostra a interface da
versão 1.6 do Blender, lançado em 1999 e a Figura 10 mostra a interface da versão 2.6, de
2011.
28
Figura 9 - Interface Blender versão 1.6
Figura 10 - Interface do Blender versão 2.6
29
3.2 Modelagem dos objetos da cena
O Blender permitiu a modelagem dos elementos necessários à composição das
cenas com um alto nível de realismo. Para tanto foram utilizadas texturas e composição de
nós, como demonstrados adiante, entre outros recursos disponíveis no software. Os elementos
foram criados fora da escala real com o objetivo de proporcionar uma melhor representação
da cena, caso contrário o satélite artificial e suas partes ficariam imperceptíveis.
3.2.1 Satélite Artificial
Para esta simulação foi modelado um satélite inspirado em um satélite da segunda
geração da série BrasilSat, da Star One (empresa operadora de satélites do grupo Embratel).
Na figura 11, temos uma imagem do painel solar do satélite real, ao lado do modelo criado
para a simulação.
Figura 11 - Satelite artificial da série BrasilSat x Modelagem
3.2.2 Planeta Terra
Para a modelagem da Terra, foram utilizadas diversas texturas, disponibilizadas
pela NASA em seu website [http://visibleearth.nasa.gov]. Estas imagens foram aplicadas à
30
esferas, possibilitando uma simulação realista do planeta, evidenciando particularidades como
relevo, visão noturna e visão diurna sob as nuvens. Cada imagem foi aplicada em esferas
distintas e sobrepostas, sendo que as mais externas possuem uma certa transparência com a
finalidade de possibilitar a visualização das mais internas.
A Figura 12 mostra a Terra vista do espaço em uma figura planificada,
possibilitando a representação dos continentes e oceanos em uma visão diurna, que com a
incorporação de iluminação em parte da esfera permitiu a simulação da parte do planeta
iluminada pelo sol.
Figura 12 – Mapa Continentes.
(Fonte: http://visibleearth.nasa.gov/)
A Figura 13 apresenta a visão no contexto noturno, permitindo a visualização da
parte da Terra onde ainda é noite inclusive com a visualização das luzes nas cidades.
31
Figura 13 - Luzes noturnas
(Fonte: http://visibleearth.nasa.gov/)
A figura 14 representa o relevo com um destaque mais claro nas áreas com maior
altitude, visto que o Blender pode interpretar o branco como maior relevo e o preto como
região de menor relevo. Já a figura 15 serve para dar o efeito de especularidade (reflexão da
luz solar), natural do planeta.
Figura 14 - Relevo (Fonte: http://visibleearth.nasa.gov/)
32
Figura 15 – Reflexo (Fonte: http://visibleearth.nasa.gov/)
A figura16 apresenta uma imagem das nuvens que são peculiares à atmosfera
terrestre, representadas pelas partes brancas e cinzas da imagem.
Figura 16 - Nuvens
(Fonte: http://visibleearth.nasa.gov/)
Com o objetivo de melhorar a qualidade das imagens, foi utilizado o Node Editor
(Editor de Nós), que é uma funcionalidade disponível no Blender que possibilitou mesclar as
texturas apresentadas anteriormente gerando um maior nível de realismo, como demonstrado
33
na Figura 17. Cada textura utilizada foi atrelada à um nó, que são ligados entre si e a outros
nós de propriedades.
Figura 17 – Nós da modelagem da Terra
3.3 Simulação da colisão e explosão em órbita
Não é possível a propagação do fogo neste ambiente devido à ausência tanto de
material combustível quanto de atmosfera. Logo, os gases que estão sendo inflamados pelas
chamas não se expandem. Sem esse componente, as chamas espalham-se de modo uniforme
tomando forma de uma esfera que se expandem até certo ponto e a seguir até desaparecerem.
Uma possível colisão envolvendo um satélite artificial e um detrito espacial, apenas
ocasionaria uma explosão caso existisse uma quantidade de combustível considerável em seu
tanque de combustível, ou no tanque do objeto errante.
Para criar a cena da colisão, foi utilizada a ferramenta Fracture Tools do Blender,
que serve para criar efeitos de quebra de objetos em várias partes, com ou sem colisão. Para a
criação do efeito de explosão foram utilizadas partículas, adicionando-se um sistema de
partículas a uma esfera colocada dento do corpo do satélite, com o objetivo de simular tal
efeito. No frame em que a colisão acontece o sistema é ativado, gerando as partículas que por
34
sua vez são emitidas por todas as faces da esfera. Após o modelo do satélite ser despedaçado,
as partículas vão se afastando criando o efeito desejado de explosão, até a sua extinção em um
tempo pré- determinado. Por outro lado, as partes do objeto continuam seguindo a trajetória
original do satélite, como ocorreria na realidade, em caso de uma explosão.
Obteve-se como resultado a representação da figura 18. As partes foram
modeladas fora da escala real para proporcionar uma melhor representação visto que em
escala real tais elementos ficariam imperceptíveis com relação à Terra.
Figura 18 - Animação da quebra do satélite artificial em várias partes.
Sem os mecanismos de controle do posicionamento do satélite artificial, as
partes remanescentes da colisão comportam-se de acordo com a física existente, seguindo
uma trajetória em forma de „anel‟ em órbita da Terra como demonstrada na Figura 19, que
retrata a colisão entre o satélite russo inativo da série Cosmos com um satélite americano
35
ativo, o Iridium 33. Os pontos na cor vermelha representam as partes remanescentes de ambos
os satélites, seguindo trajetórias correspondentes às direções em que tais satélites se
movimentavam em sua órbita em torno da Terra. Os pontos verdes são demais objetos que
estão na órbita terrestre.
Figura 19 - Partes Remanescentes de uma colisão
(Fonte: Tela de um vídeo criado pela AGI – http://www.agi.com)
3.4 O Movimento da Câmera e Geração da Animação
A movimentação da câmera virtual possibilita dar um maior realismo à animação,
além de simular a ideia de movimento. Para criar a ideia de movimento de câmera, foi
utilizada uma funcionalidade disponível no Blender que permite a utilização de curvas para a
criação de uma trajetória que definirá o caminho a ser percorrido pela câmera. Como se pode
36
observar na figura 20, o path (caminho) está representado pela linha em destaque dentro do
retângulo vermelho, indica a trajetória que a câmera virtual deverá percorrer.
Figura 20 - Caminho da câmera virtual
O vídeo foi gerado a partir da criação de diversas cenas que compõem a animação,
criando uma simulação computacional de como seria o efeito dinâmico de uma colisão de um
objeto qualquer (lixo espacial) com um satélite de comunicações, levando em conta os
aspectos mais relevantes de tal acontecimento.
Para facilitar o processo, a renderização foi dividida em quatro partes, gerando
assim quatro arquivos distintos no formato MPEG que foram anexados posteriormente
criando-se um único vídeo com uma taxa de 33 frames por segundo, o que possibilitou uma
boa qualidade das imagens, e a impressão de movimento das partes componentes do vídeo.
37
4 O APLICATIVO EM NCL
Para se construir um documento hipermídia NCL, segundo SOARES &
BARBOSA (2009), deve–se „responder‟ quatro questões fundamentais; O quê? Onde? Como?
e Quando?, ou seja, o que será exibido, em que posição da tela, com que características, como
volume, transparência e duração, entre outros, e em que tempo e ordem de exibição (e/ou após
que comando).
O quê? - Todos os elementos que fazem parte do aplicativo, tais como vídeos,
imagens e áudio, são chamados de mídia e são representados através de nós de mídia
definidos dentro de um contexto, que representa todo o documento ou parte dele, no qual é
necessário utilizar uma porta, para acessar a mídia inicial, como demonstra a Figura 21.
Figura 21- Contexto
Como? - A forma como a mídia é apresentada é definida através de descritores,
que podem controlar características dos elementos, tais como o volume de um áudio ou a
transparência de uma imagem, por exemplo. Ao se definir um descritor, associa-se uma região
a ele. Um descritor não possui uma representação gráfica.
38
Onde? - Após a definição das mídias, deve–se definir as posições onde cada
elemento será apresentado, ou seja, a posição na tela e o tamanho, através de elementos
denominados regiões.
Figura 22 – Regiões
Quando? - Após definir qual a primeira mídia a ser apresentada associando-se
uma porta a esta, é feita a definição da ordem de apresentação ligando-se cada mídia através
de elos, ou links, e o comportamento de cada elo é definido através de conectores, como
representado graficamente na Figura 23.
39
Figura 23 - Contexto e Links
4.1 Estrutura de um documento NCL
Bem como em qualquer arquivo XML, um documento hipermídia NCL apresenta
um cabeçalho XML em sua primeira linha de código. Além disso, faz parte do documento
NCL o cabeçalho (<head>) e o corpo do documento (<body>), como demonstra a Figura 24.
Figura 24 – Estrutura de um documento NCL
(Fonte: http://www.telemidia.puc-rio.br/?q=pt-br/node/554)
40
No apêndice foi anexado o código fonte em NCL da interface desenvolvida.
4.2 Desenvolvimento do Aplicativo
Para a criação do aplicativo foi utilizado o software NCL Composer, desenvolvido
pelo Laboratório de TeleMidia da PUC-Rio disponível na internet gratuitamente.
Este programa possibilitou a criação do aplicativo em NCL de maneira rápida,
satisfazendo-se as principais necessidades para o seu desenvolvimento.
No aplicativo foram inseridos o vídeo da simulação da colisão e explosão do
satélite artificial, juntamente com outros elementos pertinentes ao tema que dão mais ênfase
ao assunto em questão, com o objetivo de demonstrar as potencialidades da linguagem NCL e
a interatividade no uso de janelas e menus na interface gráfica.
Cada elemento de mídia é mostrado em um tempo pré-determinado durante a
exibição do vídeo da animação. Tais elementos aparecem nos cantos superiores da tela com
um tamanho reduzido. Porém o usuário poderá selecionar uma mídia clicando em cima dele
com o botão direito do mouse ou apertando a tecla Enter e isto fará com que o vídeo principal
troque de posição com a mídia selecionada (gráfico ou o vídeo menor), dando assim mais
destaque a ela.
Ainda existe a possibilidade de o usuário pausar a animação e/ou desativar o som,
além de visualizar cada elemento separadamente, através de um menu apresentado do lado
esquerdo da tela.
A Figura 25 apresenta a configuração das regiões utilizadas para a apresentação
das mídias que fazem parte do aplicativo. Cada mídia foi associada a uma determinada região.
41
Figura 25 – Visão de Layout do Composer (Regiões)
A Figura 26 mostra a tela da visão estrutural do aplicativo criado no Composer,
onde cada elemento de mídia é representado por uma figura, dentro do contexto, como
descrito no inicio deste capitulo e representado pelas Figuras 21 e 23. As conexões entre os
diversos elementos também estão representadas na figura.
42
Figura 26 – Visão Estrutural do Aplicativo no Composer
O contexto é iniciado por uma porta única, que acessa a imagem de fundo, que é o
primeiro elemento a ser exibido. A partir daí todos os elementos são ligados através de links
com conectores, que controlam o comportamento de cada item. Um tempo após a
inicialização da imagem de fundo, começa a exibição do vídeo principal contendo a
animação, a música, e cada elemento subsequente, sendo que determinados elementos só
serão exibidos caso o usuário o selecione, usando a capacidade de interatividade do aplicativo.
A Figura 27 demonstra a tela da visão textual do Composer, onde fica o código
gerado.
43
Figura 27 – Tela Textual do Aplicativo no Composer
4.3 Testes
Apesar de não ter sido realizado nenhum teste quantitativo, pode-se observar que
tanto o desenvolvimento dos modelos e animações utilizando-se o Blender, quanto o
desenvolvimento da interface através do Composer, tiveram um desempenho melhor quando
o sistema operacional Linux foi utilizado. Este trabalho começou a ser desenvolvido
utilizando-se o sistema operacional Windows 7 e foi concluído no Linux Ubuntu 10.04 o qual
se mostrou mais eficiente em todos os quesitos, desde a renderização até a execução do
aplicativo.
Para a validação da aplicação NCL criada, foi utilizado o NCL Validation Service
(NCL-VS), que é um serviço disponível no site: [http://validator.ncl.org.br/index.php], que
tem a função de fazer a validação online de documentos NCL, utilizando para isto o NCL
Validator, desenvolvido pelo Laboratório de Sistemas Avançados da Web (LAWS), da
Universidade Federal do Maranhão [http://www.deinf.ufma.br], que juntamente com a PUC-
Rio, é referencia no padrão Ginga.
44
O NCL-VS indica possíveis erros no documento NCL fazendo a análise
semântica, verificação das cardinalidades de elementos filhos e de elementos obrigatórios,
entre outros. Como pode ser observado na Figura 28, o NCL-VS indica diversos erros no
código fonte, caso estes sejam detectados. No caso da figura 28, estes erros foram inseridos
propositalmente para verificar a eficácia da ferramenta de validação, antes de sua utilização
na validação do aplicativo em questão.
Figura 28 - Página do NCL Validation Service contendo erros inseridos propositalmente.
45
A Figura 29 apresenta a tela do NCL Validation Service no qual foi inserido o
código fonte do aplicativo criado, com a resposta de que o documento foi avaliado com
sucesso, o que significa que este passou no teste de validação.
Figura 29 - Página do NCL Validation Service sem erros
4.4 Problemas Encontrados
Durante o desenvolvimento do aplicativo foi observada certa instabilidade no
Composer. Por se tratar de um software novo e em versão Beta, tal fato torna-se aceitável.
46
Uma possível instabilidade é mencionada inclusive no site do programa
(http://composer.telemidia.puc-rio.br/).
Existem fóruns de discussão e espaço na rede para se relatar falhas encontradas.
No nosso caso, foram relatados alguns problemas como:
O travamento do programa ao adicionar um elo, quando o contexto está
com diversos elementos de mídia, sendo necessário reiniciar o sistema;
Ao abrir um projeto já salvo, o „Zindex‟, funcionalidade que agrupa
regiões na frente ou atrás de outras regiões, é perdido.
47
5 RESULTADOS OBITIDOS
O Composer trouxe um ganho de produtividade ao desenvolvimento do
aplicativo, facilitando a programação e gerando parte do código automaticamente. Além de
possuir uma interface agradável, que permite inclusive uma customização do seu layout por
parte do programador, o software tem como objetivo preparar o código-fonte para um
refinamento posterior. Ele possui uma base de conectores que pode ser facilmente incorporada
ao aplicativo. Os pequenos problemas na versão disponível (beta) do Composer não
prejudicaram o desenvolvimento em si, e levando-se em consideração que esta é uma
ferramenta relativamente nova, tais fatos são aceitáveis e deverão ser corrigidos aos poucos, o
que é facilitado pelo fato do programa ser de código aberto.
O Blender, por sua vez atendeu todas as expectativas, permitindo a criação da
animação de forma satisfatória, possuindo uma farta documentação e fontes de consulta.
A aplicação tem como elemento principal a animação gerada, simulando a colisão
de um objeto vagando em órbita da Terra (lixo espacial) com um satélite de comunicações. O
vídeo gerado com a animação tem a duração de um minuto e trinta segundos.
Foi criada uma tela de menu, onde foram colocados o vídeo da animação gerado,
o gráfico do crescimento do lixo espacial, o vídeo da colisão dos satélites e um texto contendo
o resumo desta monografia. Cada elemento pode ser selecionado e visto separadamente.
Como pode ser observado na figura 30.
48
Figura 30 – Tela de Menu do aplicativo
A figura 31 apresenta a tela inicial, que é exibida automaticamente na sua
inicialização do aplicativo e foi criada em forma de imagem. Já a figura 32 mostra a tela do
aplicativo com a animação sendo exibida e uma legenda. Existem quatro legendas que são
exibidas no decorrer desta animação. E do lado esquerdo são exibidos os botões Menu, Pausa,
Play, Sair, Ativar e Desativar o som, que podem ser selecionados a qualquer momento.
49
Figura 31 – Tela inicial do aplicativo
Figura 32 – Animação sendo apresentada.
Os elementos adicionais são exibidos em um tempo pré–determinado. Tais
elementos são: um gráfico demonstrando o crescimento do lixo espacial ao longo do tempo,
50
um vídeo com uma simulação computadorizada da colisão de dois satélites e a representação
de outros objetos e satélites na órbita da Terra, e uma janela explicativa do gráfico
apresentado. A interface contendo esses elementos pode ser observada na figura 33.
Figura 33 – Tela com a animação sendo exibida juntamente com outros elementos.
Ao selecionar um dos objetos de mídia citados acima, a animação principal passa
para a posição deste, e tal mídia é exibida na janela maior, na posição antes ocupada pela
animação, como exposto nas figuras 34 e 35.
51
Figura 34 – Tela com gráfico maior e a animação reduzida.
Figura 35 – Tela com a animação reduzida e um segundo vídeo em tela grande.
Ao selecionar um dos elementos da tela de menu (Figura 30), este é exibido em
tamanho grande ocupando grande parte da tela, sendo que ao clicar com o botão esquerdo do
52
mouse ou pressionada a tecla <Enter>, a figura volta ao seu tamanho original e a tela de menu
(Figura 30) é exibida novamente.
A Figura 36 apresenta a tela ao ser selecionada à opção do Gráfico do
Crescimento do Lixo Espacial.
Figura 36 – Gráfico sendo exibido a partir da tela de menu.
Já a Figura 37 exibe a tela ao ser selecionada a opção resumo do TCC, na tela de
menu. Nesse caso, é exibido o resumo desta monografia escrito em arquivo de texto sem
formatação. A Figura 38 representa a tela de exibição do vídeo da simulação da colisão de
dois satélites que é exibida no decorrer da apresentação da animação.
53
Figura 37 – Texto sendo exibido a partir da tela de menu.
Figura 38 – Vídeo sendo exibido a partir da tela de menu.
A Figura 39 apresenta a tela em que o vídeo da animação gerada é exibida a partir
da sua seleção na tela de menu.
54
Figura 39 – Animação sendo exibido a partir da tela de menu.
Tal aplicativo pode ser transmitido e exibido através da tecnologia de TV Digital
ou exibido em qualquer computador após a instalação de um software especifico. Um plugin
que permitirá a exibição de conteúdos NCL em navegadores de internet está sendo
desenvolvido pela PUC-Rio para Firefox e Google Chrome, com previsão de lançamento para
dezembro de 2012.
55
6 CONCLUSÕES E SUGESTÕES PARA TRABALHOS
FUTUROS
A animação foi concluída de forma satisfatória possibilitando a simulação de uma
possível colisão de um detrito espacial com um satélite artificial. A questão do aumento de
tais objetos em órbita da Terra e do problema acarretado por este fato foi abordado. Foi
também utilizada a técnica de sistemas de partículas na modelagem dos objetos,
possibilitando a simulação do efeito de explosão.
O aplicativo em NCL foi desenvolvido dentro das expectativas, sendo validado
através de ferramentas apropriadas e possibilitando assim a abordagem do tema proposto de
uma forma original, abrindo horizontes para a sua exibição através da TV Digital, IPTV ou
como aplicativo desktop, sendo possível também a sua exibição futura através de navegadores
web assim que o plugin necessário para este fim for disponibilizado pelos desenvolvedores.
Desse modo, o usuário pode acessar as informações de uma maneira interativa, tornando sua
pesquisa sobre o tema mais agradável e interessante.
Como sugestão para trabalhos futuros fica a possibilidade de aprimoramento do
nível de realismo da animação com a simulação mais realista dos efeitos da explosão, adição
de novos elementos, e melhora dos componentes modelados, além da simulação de outros
tipos de colisão em que ocorram apenas danos aos objetos, e modelagem de outros tipos de
satélites artificias. O aperfeiçoamento da simulação dos efeitos físicos que ocorrem em tais
acontecimentos também poderia ser considerado em trabalhos futuros. O incremento e
melhoria do aplicativo com a inserção de outras informações e mídias, aprimoramento no
layout de exibição, e o uso de dispositivos móveis tais como tablets e celulares como
receptores e exibidores de informações, funcionalidades estas que estão previstas e
disponíveis para aplicativos desenvolvidos utilizando-se a linguagem NCL.
56
REFERÊNCIAS BIBLIOGRÁFICAS
ASSIS, André Kock Torres. Principia: Princípios Matemáticos de Filosofia
Natural, Livro II: O Movimento dos Corpos (em Meios com Resistência) e Livro III: O
Sistema do Mundo (Tratado Matematicamente), tradução a partir do livro Sir Isaac Newton‟s
Mathematical Principles of Natural Philosophy, Edusp, São Paulo, 2008.
AZEVEDO, Eduardo; CONCI, Aura. Computação Gráfica: teoria e prática. 4a ed.
Rio de Janeiro: Editora Campus, 2003.
BARAF, David; WIKIN, Andrew. Physically Based Modeling: Principles and
Practice, Siggraph 97 Course Notes, 1997.
BLENDER WIKI, Documentação e informações do software Blender, USA,
2012. Disponível em: http://wiki.blender.org/index.php/File:Blender3D_Partocles-Mode-
Image.jpg>. Último acesso em 15 out 2011.
BRITO, Allan. Blender 3D: guia do usuário, 4a ed. São Paulo: Editora Novatec,
2011.
CALOMENI, A. Efeitos Visuais utilizando Sistemas de Partículas. Rio de
Janeiro: PUC-RJ, 2002. (Monografia).
GINGA NCL, Site Oficial do Middleware Ginga, Brasil, 2012. Disponível em:
<http://www.gingancl.org.br>. Último acesso em: 28 out. 2012.
HALLIDAY, David Fundamentos da Física 2, vol. 1, 5 ed. Rio de Janeiro LTC,
2004.
KARASINSKI, Lucas. Como uma chama se comporta em um ambiente sem
gravidade?, 2012. Disponível em: <http://www.tecmundo.com.br/mega-curioso/25188-como-
uma-chama-se-comporta-em-um-ambiente-sem-gravidade-video-.htm#ixzz2AddzPeAH/>.
Último acesso em 26 ago 2012.
57
NASA, Orbital Debris Quarterly News, International Space Station Avoids Debris
from Old NASA Satellite. Houston (USA): NASA Orbital Debris Program Office, Volume
15, Issue 1, January 2011.
NASA, Visible Earth. A catalog of NASA images and animations of our home
planet, USA. Disponível em: < http://visibleearth.nasa.gov/>. Último acesso em 13 out 2102.
NETO, Carlos de Salles Soares; SOARES, Luiz Fernando Gomes; RODRIGUES,
Rogério Ferreira; BARBOSA, Simone Diniz Junqueira. Construindo Programas Audiovisuais
Interativos Utilizando a NCL 3.0. Rio de Janeiro: PUC-Rio, 2010. (Apostila).
REEVES, Willian. T.; BLAU, Ricki.: Approximate and Probabilistic Algorithms
for Shading and Rendering Structured Particle Systems. In: SIGGRAPH 1985: Proceedings of
the 12th
annual conference on Computer Graphcs and interactive thecnics, pp. 313-322. ACM
Press, New York, 1985.
REEVES, William T. Particle Systems: A Technique for Modeling a Class of
Fuzzy Objects. ACM. Computer Graphics, Proceedings of Siggraph. vol. 17, nº 3, 1983, p.
359-375.
ROOSENDAAL, Ton. History of Blender. Disponível em:
<http://www.blender.org/blenderorg/blender-foundation/history/>. Último acesso em: 20 mai
2012.
SIMS, K. Particle Dreams, Siggraph Video Review, ACM SIGGRAPH, New
York, 1988.
SOARES, Luiz Fernando Gomes; BARBOSA, Simone Diniz Junqueira.
Programando em NCL: desenvolvimento de aplicações para middleware Ginga, TV digital e
Web. Rio de Janeiro: Elsevier, 2009
58
APÊNDICE – CÓDIGO NCL
<?xml version="1.0" encoding="ISO-8859-1"?> 1
<ncl id="myNCLDocID"> 2
<head> 3
<connectorBase id="connBaseId"> 4
<importBase alias="conn" documentURI="defaultConnBase.ncl"/> 5
<causalConnector id="onKeySelectionAbortStop"> 6
<connectorParam name="vKey"/> 7
<simpleCondition role="onSelection" key="$vKey"/> 8
<compoundAction operator="par"> 9
<simpleAction role="abort" max="unbounded"/> 10
<simpleAction role="stop"/> 11
</compoundAction> 12
</causalConnector> 13
</connectorBase> 14
<regionBase id="rgbase1"> 15
<region height="100.00%" id="FundoReg" left="0.00%" top="0.00%" 16
width="100.00%" zIndex="10"> 17
<region height="80.00%" id="TelaPrincipalReg" left="8.78%" 18
top="4.38%" width="72.83%" zIndex="4"> 19
<region height="100.00%" id="TelaPrincipalDoisDesc" 20
left="0.00%" top="0.00%" width="100.00%" zIndex="12"/> 21
</region> 22
59
<region height="29.38%" id="TelaAuxUM" left="0.23%" 23
top="2.92%" width="21.66%" zIndex="5"/> 24
<region height="29.17%" id="TelaAuxDOIS" left="77.99%" 25
top="2.50%" width="20.73%" zIndex="5"/> 26
<region height="4.79%" id="MenuReg" left="0.70%" 27
top="61.04%" width="4.80%" zIndex="10"/> 28
<region height="4.79%" id="Pausereg" left="0.35%" 29
top="66.46%" width="3.63%" zIndex="12"/> 30
<region id="PlayReg" left="0.70%" top="73.12%" 31
width="3.63%" height="4.79%"/> 32
<region id="SairReg" left="0.59%" top="79.58%" 33
width="3.40%" height="4.58%"/> 34
<region id="LegendaReg" left="6.67%" top="86.25%" 35
width="79.98%" height="12.92%"/> 36
<region id="PararSomReg" left="0.94%" top="88.12%" 37
width="2.69%" height="4.38%"/> 38
<region id="AtivarSomReg" left="0.82%" top="93.75%" 39
width="2.69%" height="4.58%"/> 40
<region height="51.04%" id="InfoReg" left="82.20%" 41
top="32.50%" width="16.86%"/> 42
<region height="12.50%" id="LogoReg" left="91.10%" 43
top="86.25%" width="7.49%" zIndex="11"/> 44
<region height="40.62%" id="MenuGraficoReg" left="2.58%" 45
top="5.00%" width="26.93%" zIndex="12"/> 46
60
<region height="41.67%" id="MenuVideoPrincReg" 47
left="28.92%" top="54.79%" width="32.79%" zIndex="12"/> 48
<region height="36.88%" id="MenuVideoAuxReg" 49
left="71.19%" top="2.50%" width="27.63%" zIndex="12"/> 50
<region height="34.17%" id="MenuTextoReg" left="34.43%" 51
top="1.88%" width="29.86%" zIndex="12"/> 52
</region> 53
</regionBase> 54
<descriptorBase id="descriptorBase1"> 55
<descriptor id="FundoDesc" region="FundoReg" explicitDur="10s"/> 56
<descriptor id="MenuDesc" region="MenuReg" focusIndex="2" 57
moveLeft="10" moveRight="3"/> 58
<descriptor id="PauseDesc" region="Pausereg" focusIndex="3" 59
moveLeft="2" moveRight="4"/> 60
<descriptor id="PlayDesc" region="PlayReg" focusIndex="4" 61
moveLeft="3" moveRight="7"/> 62
<descriptor focusIndex="5" id="PararSomDesc" moveLeft="12" 63
moveRight="6" region="PararSomReg"/> 64
<descriptor focusIndex="6" id="AtivarSomDesc" moveLeft="13" 65
moveRight="9" region="AtivarSomReg"/> 66
<descriptor id="SairDesc" region="SairReg" focusIndex="7" 67
moveLeft="4" moveRight="5"/> 68
<descriptor focusIndex="8" id="LogoDesc" moveLeft="9" 69
moveRight="2" region="LogoReg"/> 70
<descriptor id="VideoPrincipalDesc" region="TelaPrincipalReg"/> 71
61
<descriptor id="GraficoDesc" region="TelaAuxDOIS" 72
explicitDur="84s" focusIndex="9" moveLeft="6" moveRight="10"/> 73
<descriptor id="VideoDoisDesc" region="TelaAuxUM" 74
focusIndex="10" moveLeft="9" moveRight="2"/> 75
<descriptor id="InfoGraficoDesc" region="InfoReg"/> 76
<descriptor id="GraficoDoisdesc" region="MenuGraficoReg" 77
focusIndex="1" moveLeft="7" moveRight="2"/> 78
<descriptor id="MenuFundoDesc" region="FundoReg"/> 79
<descriptor focusIndex="1" id="GraficoGDesc" moveLeft="6" 80
region="TelaPrincipalDoisDesc"/> 81
<descriptor id="MenuImgvidPrincDesc" 82
region="MenuVideoPrincReg" focusIndex="4" moveLeft="3" moveRight="7"/> 83
<descriptor focusIndex="1" id="VideoPrincDoisDesc" moveLeft="6" 84
region="TelaPrincipalDoisDesc"/> 85
<descriptor id="VideoDosiDesc" region="MenuVideoAuxReg" 86
focusIndex="3" moveLeft="2" moveRight="4"/> 87
<descriptor id="MenuTextoDesc" region="MenuTextoReg" 88
focusIndex="2" moveLeft="1" moveRight="3"/> 89
<descriptor focusIndex="1" id="VideoMissilDesc" moveLeft="6" 90
region="TelaPrincipalDoisDesc"/> 91
<descriptor focusIndex="1" id="TexxtoGDesc" moveLeft="6" 92
region="TelaPrincipalDoisDesc"/> 93
<descriptor focusIndex="1" id="GraficoGPrincDesc" moveLeft="9" 94
moveRight="2" region="TelaPrincipalReg"/> 95
62
<descriptor id="HtmlPagDesc" region="TelaPrincipalReg" 96
explicitDur="5s"/> 97
<descriptor id="LegendaDesc" region="LegendaReg" 98
explicitDur="5s"/> 99
<descriptor id="VideoAuxDesc" region="TelaPrincipalReg" 100
focusIndex="10"/> 101
<descriptor focusIndex="12" id="ImgStartVideoDoisDesc" 102
moveLeft="2" moveRight="4" region="TelaAuxUM"/> 103
<descriptor id="MenuCtxDesc" region="MenuReg" focusIndex="6" 104
moveLeft="1" moveRight="7"/> 105
<descriptor focusIndex="7" id="btnSairCtxDesc" moveLeft="1" 106
moveRight="8" region="Pausereg"/> 107
<descriptor id="DescP" region="LegendaReg" explicitDur="50s"/> 108
<descriptor id="ImgParaDesc" region="LegendaReg"/> 109
<descriptor focusIndex="1" id="HtmlDesc" moveLeft="6" 110
region="TelaPrincipalDoisDesc"/> 111
</descriptorBase> 112
</head> 113
<body id="myBodyID"> 114
<media id="BtnAtivarSom" src="Medias/AtivarSom.png" 115
descriptor="AtivarSomDesc"/> 116
<media id="BtbImgMenu" src="Medias/BtbImgMenu.png" 117
descriptor="MenuDesc"/> 118
<media id="BtnImgPause" src="Medias/BtnImgPause.png" 119
descriptor="PauseDesc"/> 120
63
<media id="BtnImgPlay" src="Medias/BtnImgPlay.png" 121
descriptor="PlayDesc"/> 122
<media id="BtnPararSom" src="Medias/BtnImgSom.png" 123
descriptor="PararSomDesc"/> 124
<media id="Fundo" src="Medias/Fundo.png" descriptor="FundoDesc"/> 125
<media id="MenuFundo" src="Medias/FundoMenu.png" 126
descriptor="MenuFundoDesc"> 127
<property name="transparency" value="1%"/> 128
</media> 129
<media id="grafico" src="Medias/grafico.png" descriptor="GraficoDesc"/> 130
<media id="infoGrafico" src="Medias/infoGrafico.png" 131
descriptor="InfoGraficoDesc"/> 132
<media id="Musica" src="Medias/Musica.mp3"/> 133
<media id="BtnSair" src="Medias/red.png" descriptor="SairDesc"/> 134
<media id="VideoIssMissilChines" src="Medias/VideoIssMissilChines.mpeg" 135
descriptor="VideoDoisDesc"/> 136
<media id="VideoPrincipal" src="Medias/VideoPrincipal.mpeg" 137
descriptor="VideoPrincipalDesc"> 138
<area id="AreaGrafico" begin="1s"/> 139
<area id="AreaVideoDois" begin="5s"/> 140
<property name="bounds"/> 141
</media> 142
<port id="PortaIni" component="Fundo"/> 143
<link id="link1" xconnector="conn#onBeginStart_delay"> 144
<bind role="onBegin" component="Fundo"/> 145
64
<bind role="start" component="BtbImgMenu"> 146
<bindParam name="delay" value="10s"/> 147
</bind> 148
<bind role="start" component="BtnImgPause"> 149
<bindParam name="delay" value="10s"/> 150
</bind> 151
<bind role="start" component="BtnImgPlay"> 152
<bindParam name="delay" value="10s"/> 153
</bind> 154
<bind role="start" component="BtnPararSom"> 155
<bindParam name="delay" value="10s"/> 156
</bind> 157
<bind role="start" component="BtnAtivarSom"> 158
<bindParam name="delay" value="10s"/> 159
</bind> 160
<bind role="start" component="BtnSair"> 161
<bindParam name="delay" value="10s"/> 162
</bind> 163
<bind role="start" component="LogoFeso"> 164
<bindParam name="delay" value="10s"/> 165
</bind> 166
<bind role="start" component="VideoPrincipal"> 167
<bindParam name="delay" value="10s"/> 168
</bind> 169
<bind role="start" component="Musica"> 170
65
<bindParam name="delay" value="10s"/> 171
</bind> 172
</link> 173
<media id="LogoFeso" src="Medias/LogoFeso.png" descriptor="LogoDesc"/> 174
<link id="link8" xconnector="conn#onBeginStart"> 175
<bind role="start" component="grafico"/> 176
<bind role="onBegin" component="VideoPrincipal" 177
interface="AreaGrafico"/> 178
</link> 179
<link id="link9" xconnector="conn#onBeginStart"> 180
<bind role="onBegin" component="VideoPrincipal" 181
interface="AreaVideoDois"/> 182
<bind role="start" component="VideoIssMissilChines"/> 183
</link> 184
<link id="link10" xconnector="conn#onEndStart"> 185
<bind role="onEnd" component="VideoPrincipal"/> 186
<bind role="start" component="MenuFundo"/> 187
</link> 188
<link id="link11" xconnector="conn#onKeySelectionStartStop"> 189
<bind role="onSelection" component="BtbImgMenu"/> 190
<bind role="start" component="MenuFundo"/> 191
<bind role="stop" component="VideoPrincipal"/> 192
<bind role="stop" component="Musica"/> 193
<bind role="stop" component="BtnImgPause"/> 194
<bind role="stop" component="BtnImgPlay"/> 195
66
<bind role="stop" component="BtnAtivarSom"/> 196
<bind role="stop" component="BtnPararSom"/> 197
<bind role="stop" component="grafico"/> 198
<bind role="stop" component="graficoGPrinc"/> 199
<bind role="stop" component="VideoAux"/> 200
<bind role="stop" component="VideoIssMissilChines"/> 201
<bind role="stop" component="ImgStartVideoDois"/> 202
<bind role="stop" component="LegExplosao"/> 203
<bind role="stop" component="LegAltitudeSat"/> 204
<bind role="stop" component="LegEscalaIrreal"/> 205
<bind role="stop" component="LegEscalaIrrealDois"/> 206
</link> 207
<link id="link12" xconnector="conn#onEndStop"> 208
<bind role="onEnd" component="VideoPrincipal"/> 209
<bind role="stop" component="grafico"/> 210
<bind role="stop" component="VideoIssMissilChines"/> 211
<bind role="stop" component="Musica"/> 212
<bind role="stop" component="LogoFeso"/> 213
</link> 214
<link id="link13" xconnector="conn#onKeySelectionPause"> 215
<bind role="onSelection" component="BtnImgPause"/> 216
<bind role="pause" component="VideoPrincipal"/> 217
<bind role="pause" component="Musica"/> 218
<bind role="pause" component="VideoIssMissilChines"/> 219
<bind role="pause" component="VideoAux"/> 220
67
</link> 221
<link id="link14" xconnector="conn#onKeySelectionResume"> 222
<bind role="onSelection" component="BtnImgPlay"/> 223
<bind role="resume" component="VideoPrincipal"/> 224
<bind role="resume" component="Musica"/> 225
<bind role="resume" component="VideoIssMissilChines"/> 226
<bind role="resume" component="VideoAux"/> 227
</link> 228
<link id="link15" xconnector="conn#onKeySelectionPause"> 229
<bind role="onSelection" component="BtnPararSom"/> 230
<bind role="pause" component="Musica"/> 231
</link> 232
<link id="link16" xconnector="conn#onKeySelectionResume"> 233
<bind role="onSelection" component="BtnAtivarSom"/> 234
<bind role="resume" component="Musica"/> 235
</link> 236
<context id="ctxMenu"> 237
<media id="grafico2" src="Medias/LogoGrafico.png" 238
descriptor="GraficoDoisdesc"/> 239
<media id="VideoAuxiliarMenu" 240
src="Medias/VideoIssMissilChines.mpeg" descriptor="VideoMissilDesc"/> 241
<media id="VideoPrincipal2" src="Medias/VideoPrincipal.mpeg" 242
descriptor="VideoPrincDoisDesc"/> 243
<port id="PortaCtxMenu" component="grafico2"/> 244
68
<media id="graficoG" src="Medias/graficoG.png" 245
descriptor="GraficoGDesc"/> 246
<media id="ImgPrinc" src="Medias/ImgPrinc.png" 247
descriptor="MenuImgvidPrincDesc"/> 248
<media id="ImgVideoDois" src="Medias/ImgVideoDois.png" 249
descriptor="VideoDosiDesc"/> 250
<media id="Texto" src="Medias/Texto.txt" 251
descriptor="TexxtoGDesc"/> 252
<media id="ImgTexto" src="Medias/Texto.png" 253
descriptor="MenuTextoDesc"/> 254
<link id="link75" xconnector="conn#onBeginStart"> 255
<bind role="onBegin" component="grafico2"/> 256
<bind role="start" component="ImgTexto"/> 257
<bind role="start" component="ImgPrinc"/> 258
<bind role="start" component="BtnSairCtx"/> 259
<bind role="start" component="ImgVideoDois"/> 260
</link> 261
<media id="BtbImgMenuCtx2" src="Medias/BtbImgMenu.png" 262
descriptor="MenuCtxDesc"/> 263
<media id="BtnSairCtx" src="Medias/red.png" 264
descriptor="btnSairCtxDesc"/> 265
<link id="link197" xconnector="conn#onEndStart"> 266
<bind role="onEnd" component="BtnSairCtx"/> 267
<bind role="start" component="BtbImgMenuCtx2"/> 268
</link> 269
69
<link id="Sair" xconnector="onKeySelectionAbortStop"> 270
<bind role="onSelection" component="BtnSairCtx"/> 271
<bind role="abort" component="ctxMenu"/> 272
<bind role="stop" component="BtnSairCtx"/> 273
</link> 274
<link id="link152" xconnector="conn#onSelectionStartStop"> 275
<bind role="onSelection" component="graficoG"/> 276
<bind role="start" component="grafico2"/> 277
<bind role="stop" component="graficoG"/> 278
</link> 279
<link id="LinkGrafico" xconnector="conn#onSelectionStartStop"> 280
<bind role="onSelection" component="grafico2"/> 281
<bind role="start" component="graficoG"/> 282
<bind role="stop" component="grafico2"/> 283
<bind role="stop" component="ImgPrinc"/> 284
</link> 285
<link id="link149" xconnector="conn#onEndStop"> 286
<bind role="onEnd" component="grafico2"/> 287
<bind role="stop" component="ImgVideoDois"/> 288
<bind role="stop" component="ImgTexto"/> 289
<bind role="stop" component="BtnSairCtx"/> 290
<bind role="stop" component="ImgPrinc"/> 291
</link> 292
<link id="link150" xconnector="conn#onSelectionStartStop"> 293
<bind role="onSelection" component="ImgTexto"/> 294
70
<bind role="start" component="Texto"/> 295
<bind role="stop" component="grafico2"/> 296
<bind role="stop" component="VideoPrincipal2"/> 297
<bind role="stop" component="ImgPrinc"/> 298
</link> 299
<link id="link151" xconnector="conn#onSelectionStartStop"> 300
<bind role="onSelection" component="Texto"/> 301
<bind role="start" component="grafico2"/> 302
<bind role="stop" component="Texto"/> 303
</link> 304
<link id="link155" xconnector="conn#onSelectionStartStop"> 305
<bind role="onSelection" component="VideoPrincipal2"/> 306
<bind role="start" component="grafico2"/> 307
<bind role="stop" component="VideoPrincipal2"/> 308
</link> 309
<link id="link156" xconnector="conn#onSelectionStartStop"> 310
<bind role="onSelection" component="ImgVideoDois"/> 311
<bind role="start" component="VideoAuxiliarMenu"/> 312
<bind role="stop" component="grafico2"/> 313
<bind role="stop" component="ImgPrinc"/> 314
</link> 315
<link id="link157" xconnector="conn#onSelectionStartStop"> 316
<bind role="onSelection" component="VideoAuxiliarMenu"/> 317
<bind role="start" component="grafico2"/> 318
<bind role="stop" component="VideoAuxiliarMenu"/> 319
71
</link> 320
<link id="link158" xconnector="conn#onEndStart"> 321
<bind role="onEnd" component="VideoAuxiliarMenu"/> 322
<bind role="start" component="grafico2"/> 323
</link> 324
<link id="link162" xconnector="conn#onKeySelectionStartStop"> 325
<bind role="onSelection" component="ImgPrinc"/> 326
<bind role="start" component="VideoPrincipal2"/> 327
<bind role="stop" component="ImgPrinc"/> 328
<bind role="stop" component="grafico2"/> 329
</link> 330
<media id="ImgpretoMenu" src="Medias/Imgpreto.png" 331
descriptor="MenuFundoDesc"/> 332
<link id="link174" xconnector="conn#onSelectionStart"> 333
<bind role="onSelection" component="BtnSairCtx"/> 334
<bind role="start" component="ImgpretoMenu"/> 335
</link> 336
</context> 337
<link id="link17" xconnector="conn#onBeginStart"> 338
<bind role="onBegin" component="MenuFundo"/> 339
<bind role="start" component="ctxMenu" interface="PortaCtxMenu"/> 340
<bind role="start" component="LogoFeso"/> 341
</link> 342
<link id="link66" xconnector="conn#onBeginStart"> 343
<bind role="onBegin" component="grafico"/> 344
72
<bind role="start" component="infoGrafico"/> 345
</link> 346
<link id="link67" xconnector="conn#onEndStop"> 347
<bind role="onEnd" component="grafico"/> 348
<bind role="stop" component="infoGrafico"/> 349
</link> 350
<media id="graficoGPrinc" src="Medias/graficoG.png" 351
descriptor="GraficoGPrincDesc"/> 352
<link id="link109" xconnector="conn#onKeySelectionStartStop"> 353
<bind role="onSelection" component="grafico"/> 354
<bind role="start" component="graficoGPrinc"/> 355
<bind role="stop" component="grafico"/> 356
</link> 357
<link id="link110" xconnector="conn#onKeySelectionStopSet_varStart"> 358
<bind role="onSelection" component="graficoGPrinc"/> 359
<bind role="start" component="grafico"/> 360
<bind role="stop" component="graficoGPrinc"/> 361
<bind role="set" component="VideoPrincipal" interface="bounds"> 362
<bindParam name="var" value="15%,5%,300%,300%"/> 363
</bind> 364
</link> 365
<link id="link108" xconnector="conn#onBeginSet_var"> 366
<bind role="onBegin" component="graficoGPrinc"/> 367
<bind role="set" component="VideoPrincipal" interface="bounds"> 368
<bindParam name="var" value="102%,1%,35%,35%"/> 369
73
</bind> 370
</link> 371
<media id="LegAltitudeSat" src="Medias/LegAltitudeSat.png" 372
descriptor="LegendaDesc"/> 373
<media id="LegEscalaIrreal" src="Medias/LegEscalaIrreal.png" 374
descriptor="LegendaDesc"/> 375
<media id="LegEscalaIrrealDois" src="Medias/LegEscalaIrrealDois.png" 376
descriptor="LegendaDesc"/> 377
<media id="LegExplosao" src="Medias/LegExplosao.png" 378
descriptor="LegendaDesc"/> 379
<link id="link111" xconnector="conn#onBeginStart_delay"> 380
<bind role="onBegin" component="VideoPrincipal"/> 381
<bind role="start" component="LegEscalaIrreal"> 382
<bindParam name="delay" value="13s"/> 383
</bind> 384
<bind role="start" component="LegExplosao"> 385
<bindParam name="delay" value="70s"/> 386
</bind> 387
<bind role="start" component="LegEscalaIrrealDois"> 388
<bindParam name="delay" value="81s"/> 389
</bind> 390
<bind role="start" component="LegAltitudeSat"> 391
<bindParam name="delay" value="64s"/> 392
</bind> 393
</link> 394
74
<link id="link116" xconnector="conn#onBeginStop"> 395
<bind role="onBegin" component="MenuFundo"/> 396
<bind role="stop" component="VideoPrincipal"/> 397
<bind role="stop" component="LegExplosao"/> 398
<bind role="stop" component="LegAltitudeSat"/> 399
<bind role="stop" component="LegEscalaIrreal"/> 400
<bind role="stop" component="LegEscalaIrrealDois"/> 401
<bind role="stop" component="ImgStartVideoDois"/> 402
<bind role="stop" component="BtbImgMenu"/> 403
<bind role="stop" component="BtnSair"/> 404
<bind role="stop" component="grafico"/> 405
<bind role="stop" component="graficoGPrinc"/> 406
<bind role="stop" component="ImgStartVideoDois"/> 407
</link> 408
<link id="link117" xconnector="conn#onKeySelectionStopSet_varStart"> 409
<bind role="onSelection" component="VideoIssMissilChines"/> 410
<bind role="set" component="VideoPrincipal" interface="bounds"> 411
<bindParam name="var" value="1%,3%,50%,50%%"/> 412
</bind> 413
<bind role="stop" component="VideoIssMissilChines"/> 414
<bind role="start" component="VideoAux"/> 415
<bind role="stop" component="graficoGPrinc"/> 416
<bind role="start" component="grafico"/> 417
</link> 418
75
<media id="VideoAux" src="Medias/VideoAux.mpeg" 419
descriptor="VideoAuxDesc"/> 420
<link id="link118" xconnector="conn#onEndSet_var"> 421
<bind role="onEnd" component="VideoAux"/> 422
<bind role="set" component="VideoPrincipal" interface="bounds"> 423
<bindParam name="var" value="10%,5%,750%,880"/> 424
</bind> 425
</link> 426
<link id="link124" xconnector="conn#onKeySelectionStopSet_varStart"> 427
<bind role="onSelection" component="VideoAux"/> 428
<bind role="set" component="VideoPrincipal"> 429
<bindParam name="var" value="10%,5%,750%,380%"/> 430
</bind> 431
<bind role="start" component="grafico"/> 432
<bind role="stop" component="VideoAux"/> 433
<bind role="start" component="VideoIssMissilChines"/> 434
</link> 435
<link id="link135" xconnector="conn#onEndStop"> 436
<bind role="onEnd" component="VideoPrincipal"/> 437
<bind role="stop" component="VideoAux"/> 438
<bind role="stop" component="VideoIssMissilChines"/> 439
</link> 440
<media id="ImgStartVideoDois" src="Medias/ImgStartVideoDois.png" 441
descriptor="ImgStartVideoDoisDesc"/> 442
<link id="link138" xconnector="conn#onEndStart"> 443
76
<bind role="onEnd" component="VideoIssMissilChines"/> 444
<bind role="start" component="ImgStartVideoDois"/> 445
</link> 446
<link id="link140" xconnector="conn#onKeySelectionStartStop"> 447
<bind role="onSelection" component="ImgStartVideoDois"> 448
<bindParam name="keyCode" value="Enter"/> 449
</bind> 450
<bind role="start" component="VideoIssMissilChines"/> 451
<bind role="stop" component="ImgStartVideoDois"/> 452
</link> 453
<link id="link141" xconnector="conn#onBeginStop"> 454
<bind role="onBegin" component="VideoAux"/> 455
<bind role="stop" component="ImgStartVideoDois"/> 456
</link> 457
<link id="link142" xconnector="conn#onEndStart"> 458
<bind role="onEnd" component="VideoAux"/> 459
<bind role="start" component="ImgStartVideoDois"/> 460
</link> 461
<link id="link143" xconnector="conn#onBeginStop"> 462
<bind role="onBegin" component="MenuFundo"/> 463
<bind role="stop" component="grafico"/> 464
<bind role="stop" component="VideoIssMissilChines"/> 465
<bind role="stop" component="VideoAux"/> 466
<bind role="stop" component="ImgStartVideoDois"/> 467
<bind role="stop" component="infoGrafico"/> 468
77
<bind role="stop" component="LegExplosao"/> 469
<bind role="stop" component="LegAltitudeSat"/> 470
<bind role="stop" component="LegEscalaIrreal"/> 471
<bind role="stop" component="LegEscalaIrrealDois"/> 472
<bind role="stop" component="BtnImgPause"/> 473
<bind role="stop" component="BtnImgPlay"/> 474
<bind role="stop" component="BtnPararSom"/> 475
<bind role="stop" component="BtnAtivarSom"/> 476
<bind role="stop" component="VideoPrincipal"/> 477
</link> 478
<link id="linkParar" xconnector="onKeySelectionAbortStop"> 479
<bind role="onSelection" component="BtnSair"/> 480
<bind role="abort" component="myBodyID"/> 481
<bind role="stop" component="BtnSair"/> 482
<bind role="abort" component="LegAltitudeSat"/> 483
<bind role="abort" component="LegEscalaIrreal"/> 484
<bind role="abort" component="LegEscalaIrrealDois"/> 485
<bind role="abort" component="LegExplosao"/> 486
<bind role="abort" component="ctxMenu"/> 487
</link> 488
<media id="Imgpreto" src="Medias/Imgpreto.png" 489
descriptor="ImgParaDesc"/> 490
<link id="link175" xconnector="conn#onSelectionStart"> 491
<bind role="onSelection" component="BtnSair"/> 492
<bind role="start" component="Imgpreto"/> 493
78
<bind role="onBegin" component="MenuFundo"/> 494
<bind role="stop" component="ImgStartVideoDois"/> 495
</link> 496
<media descriptor="HtmlDesc" id="ht" src="Medias/ht.png"/> 497
<link id="link177" xconnector="conn#onSelectionStart"> 498
<bind role="onSelection" component="LogoFeso"/> 499
<bind role="start" component="ht"/> 500
</link> 501
</body> 502
</ncl> 503