You are here

Aula 1 - Introdução

Introdução

 

Objetivo

O objetivo desta aula é realizar um primeiro contato com o ambiente de trabalho a ser utilizado no curso. Para tanto, as seguintes atividades devem ser realizadas:

  • Contato com o Web-site da disciplina
  • Uso e Gerenciamento da página de relatórios
  • Download do Código do Ambiente Virtual que iremos utilizar em nossos trabalhos e sua compilação no Netbeans
  • Geração de um Controlador Manual para o Ambiente Virtual

Relatório das atividades

 

Atividade 1: Contato com o Web-site da disciplina

O Web-site da disciplina foi acessado para a localização das informações sobre o curso, incluindo as instruções para as atividades a serem executadas em cada aula e a página onde deverão ser relatados os resultados.

Atividade 2: Uso e Gerenciamento da Página de Relatórios

O acesso ao ambiente foi realizado com as credenciais fornecidas pelo professor.

Essa página para a aula 1 foi adicionada, realizado o upload de um arquivo e inserido um link para o mesmo (README).

Atividade 3: Download e Compilação do Código do WorldServer3D

Foi realizado o download do código Java do WorldServer3D, a partir da página de recursos computacionais.

O código foi compilado e executado.

Foi gerado um código executável, utilizando o serviço Java WebStart.

Foi realizado o upload do código executável e do arquivo jnlp que permite sua ativação via WebStart.

Foi inserido um link para ativação do WorldServer3D (launch WorldServer3D) e testada a sua funcionalidade.

Atividade 4: Geração de um Controlador Manual para o Ambiente Virtual

Foi implementada uma aplicação JavaFX para controlar uma criatura no ambiente do WorldServer3D.

A aplicação é composta de quatro classes: WS3DControl, WS3DController, WS3DProxy e Robot. WS3DControl é aplicação, que em JavaFX apenas instancia a interface gráfica (definida no arquivo WS3DControl.fxml), e WS3DController o controlador associado. WS3DProxy é a responsável pela comunicação via socket com o WorldServer3D, podendo ser reutilizada em futuros desenvolvimentos, e Robot é uma classe que encapsula os dados da criatura a ser controlada. A página da aplicação é mostrada na figura a seguir.

WS3DControl Graphical User Interface

Ao iniciar a aplicação estabelece automaticamente uma conexão com o WorldServer3D e, portanto esse deve ser iniciado antes do WS3DControl. O botão "Start" adicionará uma criatura nas coordenadas x=0, y=0 e pitch=0, ativará uma camera e recarregará seu combustível. O botão "Info" enviará os comandos version, refuel, getcreatinfo, getcreatcoords e getfullstatus3d e serve apenas para aumentar a familiaridade com o ambiente. o botão "Quit" enviará o comando quit, fecha a conexão via socket e termina a aplicação. As setas enviam o comando setgoto para uma posição à frente ou atrás da posição corrente da criatura, levando o pitch corrente em consideração, seguido do comando start, ao pressionar o botão e envia o comando stop, seguido do comando getcreatcoords, ao liberar o botão. A seta para cima movimenta a criatura para a frente e a seta para baixo movimenta a criatura para trás. A seta para a direita acrescenta 15 graus ao picth corrente e a seta para a esquerda subtrai 15 graus do pitch corrente.

A funcionalidade foi testada e funciona razoavelmente. No entanto, a abordagem escolhida para a movimentação da criatura não é muito precisa e deve ser revista no futuro. Como conclusão, há a necessidade de aumentar a familiaridade com os comandos de controle do ambiente e suas respectivas respostas, devendo essa implementação ser considerada apenas como um passo inicial.

A aplicação pode ser ativada com o link launch WS3DControl e o arquivo contendo os fontes e projeto Netbeans pode ser acessado pelo link WS3DControl.zip.

Atualização após a aula 2: Uma nova versão foi desenvolvida onde foi usado o comando setTurn para movimentar a criatura, substituindo o comando setGoTo utilizado anteriormente. Nessa versão as setas para a direita e para a esquerda apenas giram a criatura em 15 graus para a direita ou para a esquerda, respectivamente, alterando os valores dos parâmetros Vr e Vl e mantendo o parâmetro Speed igual a zero. As setas para cima e para baixo movimentam a criatura para a frente a para trás, sem alteração do pitch corrente, alterando o valor do parâmetro Speed para 1 e para -1, respectivamente, e mantendo os valores dos parâmetros Vr e Vl iguais a zero. A liberação dos botões envia o comando getcreatcoords, para os botões com as setas para a direita e para a esquerda, e setTurn, com os parâmentros Speed, Vr e Vl iguais a zero, para os botões com as setas para cima e para baixo. Com essas alterações, o controle da criatura tornou-se mais preciso.

A nova versão da aplicação pode ser ativada com o link launch WS3DControl_v1 e o arquivo contendo os fontes e projeto Netbeans pode ser acessado pelo link WS3DControl_v1.zip.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer