Sistema de partículas para dispositivos móveis na plataforma Android. Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos

Documentos relacionados
Mobile Command. Diego Armando Gusava. Orientador: Mauro Marcelo Mattos

Um estudo sobre Realidade Aumentada para a plataforma Android. Acadêmica Gabriela Tinti Vasselai Orientador Dalton Solano dos Reis

Computação II Orientação a Objetos

API's e Aplicações para Android

Desenvolvimento de um aplicativo básico usando o Google Android

Android OLÁ MUNDO MÓVEL. Prof. Dr. Joaquim assunção.

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

SISTEMA BASEADO EM LOCALIZAÇÃO DE SERVIÇOS DE TÁXI

PROTÓTIPO DE APLICAÇÃO PARA O PROBLEMA DE ROTEAMENTO DE VEÍCULOS EM DISPOSITIVOS MÓVEIS NA PLATAFORMA ANDROID

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Geração Automática de Código Android Eficiente a partir de Modelos UML

Desenvolvimento de aplicações na plataforma Google Android

Programação para Dispositivos Móveis. Activities

Departamento de Engenharia e Ciências do Mar Licenciatura em Engenharia Informática e de Computadores Projeto Fim de Curso TÍTULO

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

Programação para Dispositivos Móveis

VISEDU-CG 3.0: Aplicação didática para visualizar material educacional Módulo de Computação Gráfica

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Visualizador de imagens 360 graus interativas na plataforma Android. Acadêmico: Jorge Luis Iten Júnior Orientador: Dalton Solano dos Reis

Introdução ao Desenvolvimento para Dispositivos Móveis

Android: Ciclo de vida da Activity

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Android Básico Hello World!

Visão geral Estrutura do sistema Ferramentas de desenvolvimento Uma aplicação. Android. Universidade Federal de Santa Catarina. 17 de dezembro de 2008

Introdução ao Android

CURSOS ANDROID. Prof: Igor Portela

Framework de replicação de dados com criptogra4ia simétrica utilizando noti4icações para Android.

Desenvolvimento de um aplicativo básico usando o Google Android

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Desenvolvimento Android. Pontapé inicial...

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

Introdução ao Android SDK. Prof. Me. Hélio Esperidião

APLICAÇÃO MOBILE MARKETING COM COMUNICAÇÃO BLUETOOTH FOCADA EM BARES E RESTAURANTES. Acadêmico: Rafael Formento Orientador: Paulo Fernando da Silva

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

MANUAL DE INSTALAÇÃO CONFIGURAÇÃO IDE ECLIPSE

O que é o Android? O que é o Android

Prof. Jhonatan Fernando

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Sistemas Operacionais Introdução

Manual de utilização do Sistema de gerenciamento de inspeção de equipamentos (SGIE) Conteúdo

Toolkit para Linux Embarcado. Autor: Thiago Waltrik Orientador: Miguel Alexandre Wisintainer

Implementação de um Motor de Jogos de Carta para a Plataforma Android

Conceitos Básicos e Práticos do Android

Manual de instalação e configuração da Ferramenta Android SDK

INTRODUÇÃO À PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS. ADS 6º Período

Programação para Dispositivos Móveis

Desenvolvimento de Aplicativos com ASR para Android

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Flaviano José Angeli. Orientador: Dalton Solano dos Reis

EA998/MC933 Guido Araujo e Sandro Rigo

OBJETIVO Criação e execução de um projeto Android dentro da IDE IntelliJ.

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Desenvolvimento de Aplicativos com ASR para Android

Acadêmico: Maicon Machado Orientador: José Carlos Toniazzo

Desenvolvimento para Android Prá9ca 1. Prof. Markus Endler

Desenvolvimento Android.

IV SEMANA DE INFORMÁTICA. Prof. Rafael Hens Ribas

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Java. Marcio de Carvalho Victorino

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Prof: Ricardo Quintão Site:

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Qualidade de Software

Sistemas Embarcados Android

Sistemas Embarcados Android

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

Sistema de Help Desk e Controle de Chamados Baseado em Workflow. Cristian Paulo Prigol Marcel Hugo

Collaboration Map Collaboration Map. Figura 6.1: Arquitetura da aplicação

Open Graphics Library OpenGL

PROTÓTIPO DE UM SISTEMA DE RASTREAMENTO PARA COMPUTADORES

Introdução. Dados. Imagens. 1. CG Computação Gráfica. 2. Paradigmas de Abstração

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

ANDROID APPLICATION PROJECT

GuiBi: Um aplicativo para plataforma Android com um guia comercial da cidade de Bambuí MG

Desenvolvimento de um aplicativo básico usando o Google Android

EA998/MC933 Guido Araujo e Sandro Rigo

Programação para a Plataforma Android Aula 7. Mul$mídia

APLICATIVO MOBILE CATÁLOGO DE PÁSSAROS - PLATAFORMA ANDROID/MYSQL/WEBSERVICE

Análise e Projeto Orientados por Objetos

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva

SISTEMA DE APOIO A DECISÃO EM MARKETING BASEADO EM GEOGRÁFICA

PROTÓTIPO DE SOFTWARE PARA TREINAMENTO AUDITIVO DE MÚSICOS EM DISPOSITIVOS MÓVEIS UTILIZANDO JME

Sistemas Operacionais

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos

HCT Compatibilidade Manual do Usuário

Introdução Dalvik Linux 2.6. Android. Diogo de Campos, João Paulo Pizani Flor, Maurício Oliveira Haensch, Pedro Covolan Bachiega

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

MÓDULO DE AVALIAÇÃO DO RETORNO DE INVESTIMENTO EM SISTEMA DE ANIMAL. Eduardo Ehlert Orientador: Mauro Marcelo Mattos

AULA 2. Minicurso PET-EE UFRN

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

SISTEMA PARA AUTOMATIZAR O MONITORAMENTO DE ROTEADORES DE UM PROVEDOR DE ACESSO

16:21:50. Introdução à Informática com Software Livre

Produtos da Fábrica de Software

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Transcrição:

Sistema de partículas para dispositivos móveis na plataforma Android Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos

Roteiro Introdução Identificação do problema Objetivos Fundamentação teórica Sistema de Partículas Desenvolvimento Principais Requisitos Especificação Implementação Operacionalidade da aplicação Resultados e discussão Conclusão Extensões Demonstração

Introdução Dispositivos Móveis Previsões para computação ubíqua (onipresente) 1991 Crescimento telefonia móvel Popularização dos dispositivos móveis Avanços de Hardware em disp. móveis Graphics Processing Unit (GPU) Avanços de Software Android

Introdução Identificação do problema Problema de modelagem de objetos cujas formas não são bem definidas chuva, nuvens, fogo, fluxos de fluídos, fumaça, poeira, efeitos de explosão, fogos de artifício, fenômenos naturais Sistema de partículas (simulação física dos elementos conforme seu comportamento no mundo real)

Introdução Objetivos Framework de suporte a utilização de sistema de partículas para plataforma Android Específicos: Disponibilizar uma aplicação demonstração Validar a aplicação através de um estudo de caso

Fundamentação teórica Sistema de partículas Dificuldade de modelar objetos cujas formas não são bem definidas. Representação de um objeto através de um conjunto composto por inúmeras partículas que definem seu volume. Como exemplo, nuvem: Composta de inúmeras gotículas suspensas no ar, sendo que a medida que se movimentam ao longo do tempo, sua forma é alterada

Fundamentação teórica Etapas para modelagem: 1. A cada passo de tempo percorrido, novas partículas são geradas 2. Cada partícula tem seus próprios atributos 3. A partícula que atingir alguma condição de extinsão é eliminada 4. Atributos das partículas restantes são modificados 5. As partículas ativas são exibidas no quadro de animação. Atributos de partículas: 1. Posição 2. Velocidade (direção e módulo) 3. Tamanho 4. Cor 5. Transparência 6. Forma 7. Tempo de Vida ** outros podem ser adicionados dependendo da aplicação e dos fenômenos simulados

Fundamentação teórica Física, estudo na mecânica Conceitos fundamentais: 3 leis de Newton, leis do movimento: um corpo permanece em repouso ou em movimento uniforme, exceto sob a atuação de uma força; um corpo sob a atuação de uma força se move de tal forma que a taxa temporal de variação da quantidade de movimento se iguala a força; se dois corpos exercem forças entre si, essas forças são iguais em magnitude e opostas em termos de direção. Forças de retardo: Gravitacional resistiva do ar ascensional (força de subida)

Fundamentação teórica Plataforma Android OHA, 84 (2012) Kernel 2.6 Linux Plataforma Aberta Moderno, flexível Maquina virtual Dalvik

Trabalhos correlatos Um estudo sobre realidade aumentada para a plataforma Android (VASSELAI, Gabriela T.) Trabalho de conclusão de curso (TCC) Simulação física de corpos rígidos em 3D. (MUELLER, Victor A.) TCC Integração de sistemas de partículas com detecção de colisões em ambientes de Ray Tracing (STEIGLEDER, Mauro) Dissertação Mestrado Ciência da Computação

Desenvolvimento Principais Requisitos: Funcionais: disponibilizar uma aplicação exemplo para demonstrar sua utilização e visualizar a simulação exibir a simulação de partículas na tela do dispositivo permitir alterar os parâmetros de cálculo permitir pausar e continuar a execução durante a simulação de partículas permitir a troca em tempo de execução de dois parâmetros com toque na tela considerar um sentido e força para gravidade na simulação das partículas informar a quantidade de Frames Por Segundo (FPS) na simulação

Desenvolvimento Principais Requisitos: Não-Funcionais ser implementado para a plataforma Android ser desenvolvido na linguagem Java com o IDE Eclipse ser desenvolvido com base no Android SDK 2.2 API Level 8 ser executado pelo hardware de um dispositivo móvel sem comprometer o desempenho do sistema operacional

Desenvolvimento Especificação Diagrama de Pacotes Geral Diagrama de Classes Motor

class br.furb.sp.motor Particula + x: float + y: float + z: float + vx: float + vy: float + vz: float + tempovida: float + vermelho: float + verde: float + azul: float + ativa: boolean + efeitoativo: boolean + tamanhopart: float + subparticulas: Particula ([]) + Particula() + Particula(float, float, float) + Particula(float, float, float, (...), float, float) + subparativa() : boolean MotorParticulas + particulasarray: Particula ([]) + pvertexbuffer: FloatBuffer + pindicebuffer: ShortBuffer # gerador: Random # ultimotempo: long + QTDparticulas: int + QTDsubParticulas: int # veloctempo: int # gravidade: float # velocidade: float # resistenciaar: float # tamanhopart: float # limitechao: float # estadosistema: boolean # preferencias: Preferencias # contframe: int = 0 + MotorParticulas(Preferencias) + iniciaparticulas() : void - ConstroiFloatBuffer(float[]) : FloatBuffer - ConstroiShortBuffer(short[]) : ShortBuffer + update() : void + updateefeito() : void + destroiparticulas() : void + destroiparticulas(int) : void + criaparticula(int) : void + criaparticulas() : void + carregarpref() : void + gravarpref() : void + isativo() : boolean + continuarsimulacao() : void + pausarsimulacao() : void GLSurfaceView.Renderer RendererView # msistemaparticula: MotorParticulas # drawstr: DrawSTR # fps: CalcFPS + RendererView(Preferencias, int, int) + onsurfacecreated(gl10, EGLConfig) : void + onsurfacechanged(gl10, int, int) : void + pararsimulacao() : void + pausarsimulacao() : void + continuarsimulacao() : void + ondrawframe(gl10) : void + drawmotorparticulas(gl10) : void SurfaceView # mrenderer: RendererView ~ cont1: int = 0 ~ cont2: int = 0 ~ x: float ~ y: float # preferencias: Preferencias GLSurfaceView + SurfaceView(Context, Preferencias, int, int) + onpause() : void + onresume() : void + onstop() : void + ontouchevent(motionevent) : boolean

Desenvolvimento Diagramas de Estados Activity Motor de Partículas stm Diagrama de Estados Activ ity stm Diagrama de Estados Motor de Partículas Estados de uma Activity Estados Motor de Partículas Inicio [newactivity] /oncreate() onstart() onresume() Inicial [Inicio] /iniciaparticulas() «paused» Pausada [Stop] /onstop() [Pause] /onpause() [Destroy] /ondestroy() [Resume] /onresume() [Restart] /onrestart() onstart() «stopped» Parada «running» Executando [Pausar] /onpause() «running» Executando «paused» Pausado [Continuar] /onresume() [Reiniciar] /onrestart() iniciaparticulas() [Parar] /onstop() «stopped» Parado [DestróiParticulas] /destroiparticulas() Final Final

Desenvolvimento Diagrama de Sequência interação do Usuário com o sistema de partículas

sd Diagrama de Sequencia Usuário «Activity» MenuInicial «Activity» «GLSurfaceView» SimulaçãoActivity SurfaceView «Renderer» RendererView «MotorParticulas» MotoParticula «SharedPreferences» Preferencias «Activity» Configuracoes SelecionaOpcao IniciaActivity InstanciaNovasPreferencias CriaSurfaceView CriaRenderer IniciaMotorParticulas DesenhaParticulas CarregaPreferencias AtualizaSimulacao ondrawframe MostraSimulacao AcaoToqueMovimenta AcaoEntrarConfiguracoes AtualizaPreferencias IniciaActivity CarregaPreferencias AlteraParametrosPreferencias AtualizaPreferencias

Desenvolvimento Implementação Técnicas e Ferramentas utilizadas: IDE Eclipse versão 3.6.2 (Helios Service Release 2) Android SDK da versão 2.2 Android Development Tools (ADT) da revisão 17 OpenGL ES 1.0 Dispositivo móvel Motorola Milestone 3 ( XT860 ).

Desenvolvimento Implementação Arquivo AndroidManifest.xml Recursos auxiliares: 1.Diretório /res/layout XML, layout para interface gráfica 2.Diretório /res/values/ XML, representam os Valores

Implementação Classe Particula pacote br.furb.sp.motor Atributos Método subparativa()

Implementação Classe FAMotorParticulas pacote br.furb.sp.motor.fogosartificio Método update()

Classe FAMotorParticulas pacote br.furb.sp.motor.fogosartificio Método updateefeito()

Operacionalidade Desenvolvimento

Operacionalidade Desenvolvimento

Desenvolvimento Resultados e discussão Biblioteca x Framework Funcionalidades Abstratas Problemas encontrados Valores, calculos de física OpenGL ES e texto Escassez de material, Sistema de Partículas Simulador Android

Desenvolvimento Resultados e discussão Testes de Desempenho Simulação Fogos > < Gotas de Água

FPS - Frames Por Segundo FPS - Frames Por Segundo Desenvolvimento Resultados e discussão Testes de Desempenho 70 60 50 40 30 20 10 0 Quantidade de partículas Simulação de Fogos de Artifício > < Simulação de Gotas de Água média de FPS 70 60 50 40 30 20 10 0 média de FPS Quantidade de partículas

Conclusão Plataforma Android Ponto Forte Simulador Android Ponto Fraco Desafio, escassez de material Framework básico de suporte ao desenvolvimento de sistema de partículas Simulação seguindo leis físicas Dois estudos de caso Todos os requisitos atendidos Dispositivos com Android apto a modelagem Fundamentação para ligar Android e modelagem por sistema de partículas

Extensões Acrescentar sistema de colisões ao framework Acrescentar modelagem de fluídos Adicionar efeitos na modelagem de fogos Portar o framework para outras plataformas Adicionar funcionalidade para visualização e movimentação em 3 dimensões Efeito de redemoinho de partículas Acresentar sistema de fusão de fluídos

Demonstração Demonstração no dispositivo móvel ou Video

FIM OBRIGADO Acadêmico: Angel Vitor Lopes Orientador: Mauro Marcelo Mattos

Desenvolvimento Especificação Diagramas de Classes Pacote br.furb.sp.main Classe inicial básica, activity, tela de informações Pacote br.furb.sp.string Auxiliares para desenhar texto no OpenGL ES Pacote br.furb.sp.util Utilitários para o Motor de Partículas Pacote br.furb.sp.motor Define o framework Pacote br.furb.sp.motor.fogosartificio Pacote br.furb.sp.motor.gotaagua

Implementação Classe MotorParticulas pacote br.furb.sp.motor Atributos