A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação Orientada a Objetos com C++ Descrição do Trabalho Final.

Apresentações semelhantes


Apresentação em tema: "Programação Orientada a Objetos com C++ Descrição do Trabalho Final."— Transcrição da apresentação:

1 Programação Orientada a Objetos com C++ Descrição do Trabalho Final

2 Descrição Geral  Aplicação para desenho 2D  Desenho por clique e arraste  Ícones para selecionar a tarefa:  Criar nova primitiva:  Elipse, Retângulo  Modificar primitiva selecionada  Mover primitiva para outra posição  Trocar atributos de desenho  Cor de preenchimento  Cor da linha

3 Disposição da tela  Ícones para ferramentas devem ser agrupadas em grupos (barras de ferramenta)  Desenho, modificação, atributos  Posição, tamanho e forma dos ícones é livre  Não é permitido usar toolkits de interface gráfica para desenhar e gerenciar ícones  Ícones são desenhados na janela principal usando apenas as funções da biblioteca graphics (fornecida)

4 Interação  Toda a interação deve ser feita apenas com o mouse  Apenas o botão esquerdo do mouse será usado  Seleção da ferramenta ou modificação do atributo corrente:  Clique sobre o ícone respectivo  Seleção do objeto desenhado:  Clique sobre o objeto

5 Criação de primitivas  Elipses e retângulos  Clique sobre um canto e arraste para dimensionar o objeto  Para a elipse, os cantos devem representar o menor retângulo envolvente

6 Modificação da geometria de primitivas  Posição  Clique sobre um objeto, arraste até a posição desejada, e solte o botão do mouse

7 Extensões  Outras facilidades podem ser incorporadas se desejado  Exemplo:  Desenho de outras primitivas  Escala / Rotação de objetos  Agrupar / desagrupar objetos  Alterar a ordem de desenho dos objetos (trazer para a frente ou para trás)  Salvar / Recuperar desenhos em arquivo  OBS.: Extensões podem melhorar a nota, mas ênfase deve ser em código limpo e correto!

8 Dicas de implementação  Use OO (orientação a objetos) para representar as diversas primitivas e ícones como derivados de uma classe base só  Métodos  draw()  desenha o objeto na tela  contains(point)  retorna true se objeto contém ponto  Atributos do objeto representam propriedades  Cor de preenchimento / Cor de linha  Posição

9 Dicas de implementação  Classe para grupo de objetos pode suportar o método “select”  Usa o método contains para descobrir qual objeto foi clicado  Método draw desenha todos os objetos do grupo  Objeto selecionado é desenhado de forma distinta  Descobrir se um objeto foi clicado:  Cálculos geométricos  Usando OpenGL  Capítulo 13 do red book: Selection and feedback

10 Dicas de implementação  A biblioteca graphics tem um suporte limitado ao mouse  É possível apenas saber se o botão está ou não apertado, mas não se o usuário acabou de apertar o botão  Lembre, entretanto, que a rotina “display” está sendo repetidamente sendo chamada para desenhar um quadro (30 vezes por segundo)  Para distinguir os eventos de mouse, é preciso comparar a situação do botão entre um quadro e outro  Veja o exemplo a seguir

11 Exemplo de rotina display void display() { // State between two frames stored in static variables static bool prevPressed = false; // Whether the mouse button was pressed in previous frame static Point prevMouse (0,0); // First position of the mouse Point m (mouseX(), mouseY()); // The mouse position // Process mouse if (prevPressed && !buttonPressed()) // Button Release else if (!prevPressed && buttonPressed()) // Button Press else if (prevPressed && buttonPressed ())// Mouse Drag // Save state for next frame prevPressed = buttonPressed(); prevMouse = m;


Carregar ppt "Programação Orientada a Objetos com C++ Descrição do Trabalho Final."

Apresentações semelhantes


Anúncios Google