Italo Info


Busca

Resultados encontrados: 32
Calculadora em Java

Para desenhar em Java, precisamos lidar com coordenadas semelhantes ao plano cartesiano que aprendemos na escola, sendo que, com coordenadas (0,0) no canto superior esquerdo. Veja a imagem abaixo: Agora, vamos ao código Java que cria uma simples Janela com um painel de desenho. Para começar, precisamos determinar qual o tamanho da janela e do painel de desenho. Por exemplo, vamos criar uma janela com um painel de desenho de 640px de largura e 480px de altura. Veja o código abaixo O código acima é simples de entender e está comentado. Com a execução dele, é criada uma janela com algumas formas geométricas desenhadas. Perceba que os códigos de desenho ficam no método "paintComponent". A partir daqui, os exemplos serão voltados apenas para os códigos que ficam no método paintComponent. Logo, utilize o programa acima como modelo para os demais exemplos. Veja abaixo o resultado do código acima: Algo importante de ser compreendido em se tratando de desenho em uma linguagem de programação, é o cálculo feito com base em variáveis. Isto é, toda forma geométrica pode ser representada por um polígono com vertices e arestas que ligam os vertices, formando assim a forma geométrica. Por exemplo, para desenhar em Java ou outra linguagem, é importante conhecer as dimensões da tela ou painel de desenho, isto é, largura e altura da tela. outra coisa importante de se conhecer é sobre o sistema de coordenadas da biblioteca gráfica utilizada. Em java, o eixo x do plano que representa a tela de desenho cresce de traz para frente, e o eixo y, cresce de cima para baixo, não de baixo para cima como o sistema de coordenadas cartesiano que estudamos na escola. Veja mais adiante, um exemplo de desenho de um polígono de 6 lados iguais, um hexágono. Para o desenho de um hexágono, é necessário, caso queiramos centralizá-lo, conhecer as coordenadas do centro da tela. E, claro, para calcular as coordenadas do centro da tela, é necessário o conhecimento da largura e altura da tela (painel) de desenho. Veja abaixo como determinar as coordenadas do centro da tela: Veja a imagem abaixo para compreender melhor o porquê das coordenadas centrais serem iguais a metade da largura e metade da altura. Isso, se tomarmos como base as coordenadas (0,0). Perceba que para desenhar o polígono centralizado, tomamos como base as coordenadas do centro da tela, não a coordenada (0,0). O que significa que o centro da tela é relativo as coordenadas (0,0) e o hexágono a ser desenhado terá como coordenadas iniciais as coordenadas do centro da tela. Agora vamos ao desenho do hexágono! Para desenhar o hexágono, precisamos determinar seus vertices como vetores bidimensionais relativos as coordenadas do centro da tela. Veja o exemplo que ilustra um simples estudo do hexágono: Repare que o hexágono, por ter 6 lados, torna possível parti-lo em 6 pedaços, formando triângulos com ângulo agudo de 60º cada. Então, primeiramente, temos que calcular esse ângulo que corresponde a 60º em radiano. Ou seja 60º é igual a ( PI / 3 ). Repare também que as coordenadas X,Y relativas ao centro da tela de desenho são os catetos dos triângulos formados com ângulo de 60º. Logo, podemos aplicar os seguintes cálculos: Veja o código fonte abaixo em que são aplicados os cálculos acima: Perceba que no laço do exemplo acima, o angulo, a cada iteração, é incrementado em 60º (O ângulo da fatia do hexágono que corresponde a ( PI / 3 ) ). Isto é, na primeira iteração, o angulo "a" corrresponde a zero, na segunda, a 60º na terceira a 120º e assim por diante até completar os 360º. Perceba também que, para determinar as coordenadas, foram necessários calculos trigonométricos. Vamos fazer alguns calculos para determinar as coordenadas do hexágono. Como no exemplo acima o que varia a cada coordenada é apenas o ângulo que é incrementado em 60º, podemos utilizar um for (ou outro loop) para gerar os vetores Xs e Ys do polígono a ser desenhado: o hexágono. Por isso, o código acima foi substituido pelo código abaixo. Agora, veja abaixo o código completo: Veja abaixo o resultado do programa acima: Veja abaixo um programa que fiz que mostra sobre o que é possível fazer com gráficos em puro Java. Trata-se de um jogo produzido em Java com, apenas, a biblioteca gráfi 2cf ca fornecida pela linguagem. Todos os personagens e componentes do jogo são polígonos desenhados em Java. Abaixo o link para download do jogo "Batalha Estrelar": Para jogar, aperte o espaço para atirar e movimente a nave utilizando as setas do teclado Download: BE-1.2.jar E assim termino o primeiro artigo sobre computação gráfica com exemplos em Java. Espero que tenham gostado e, até a próxima! } catch ( LineUnavailableException ex ) { throw new Exception( "Erro na abertura do arquivo de áudio." ); } catch ( FileNotFoundException ex ) { throw new Exception( "\""+arquivoAudio+"\"\nArquivo não encontrado." ); } catch ( IOException ex ) { throw new Exception( "Erro na leitura do arquivo de áudio." ); } } } Observe primeiramente o método "getInstance", a variável privada e estática "instance" e o construtor privado como o único na classe. São características de uma classe Singleton! Agora, você pode entender como a chamada ao método "play" no método principal funciona. Mas, entenda também que a classe AudioPlayer tem, de fato, o método de nome "play" que recebe o caminho do arquivo de áudio para tocar. O método "play" Pronto! Vamos agora focar no método "play" para entender como ele funciona. Perceba que há a possibilidade de uma exceção tipo Exception ser lançada com uma mensagem personalizada e capturada no método principal. O ideal era criar uma classe de exceção personalizada. Mas, por questões de simplicidade, utilizei a classe Exception mesmo. Se uma exception é lançada pelo método "play", é mostrada uma janelinha com a mensagem personalizada. Singleton com multithreading Como o singleton utiliza um atributo e um método estático, talvez não seja uma boa idéia utilizar essa solução em um ambiente concorrente. O download do código fonte Abaixo o link de download do código fonte do projeto que toca um áudio. Link de download: singleton-exemplo.zip Após baixar o projeto, você pode compilar se estiver com o JDK. Então, use a linha de comandos para entrar na pasta base do projeto descompactado e utilize o seguinte comando para compilar: javac -d bin src/singleton/*.java src/singleton/audio/*.java Agora para rodar, basta utilizar o seguinte comando: java -cp bin singleton.Main oi-meu-chapa.wav No comando acima, você pode passar qualquer arquivo de áudio em formato ".wav" no lugar de "oi-meu-chapa.wav". Se não passar o arquivo, o "picapau.wav" é executado por padrão, conforme o comando abaixo: java -cp bin singleton.Main Finalizando... Esse é o final de mais um artigo sobre padrões de projeto. Desta vez, o padrão singleton foi discutido aqui. Espero que tenham gostado e, até o próximo! 1463 Escrito por: Ítalo Herbert Última alteração feita em: 25/10/2024 19:48:47 Tags relacionadas: singleton, padrão, design, pattern, java, prog, programação, refactoring, qualidade, código Você também pode gostar: Padrão DecoratorDesenho da bandeira do BrasilDesenhando em JavaPadrão ObserverPrincípios SOLID Deixe seu comentário Nome: E-Mail: Comentario: obrigatório Mostrar na lista de comentários Código de verificação: Digite o código: obrigatório Enviar Limpar Comentários postados: Nenhum comentario visível postado até o momento, deixe o seu! Política de privacidade Produzido por Ítalo Herbert 0 o( decorator, 75, Color.RED ); Decoradores de desenhos - Bandeira do Japão Abaixo o link de download do código fonte do projeto que desenha uma bandeira. Link de download: decorator-exemplo.zip Após baixar o projeto, você pode compilar se estiver com o JDK. Então, use a linha de comandos para entrar na pasta base do projeto descompactado e utilize o seguinte comando para compilar: javac -d bin src/bandeira/desenho/*.java src/bandeira/*.java Agora para rodar, basta utilizar o seguinte comando: java -cp bin bandeira.BandeiraMain Baixe, compile e rode o projeto e experimente adicionar novos decoradores, ou remover decoradores encadeados ou, mesmo, alterar a ordem das instâncias e teste novamente para ver que gráfico é gerado! Finalizando... Esse é o final de mais um artigo sobre padrões de projeto. Desta vez, o padrão decorator foi discutido aqui. Espero que tenham gostado e, até o próximo! 1435 Escrito por: Ítalo Herbert Última alteração feita em: 25/10/2024 19:37:57 Tags relacionadas: decorator, prog, programação, java, padrão, design, patterns, qualidade, código Você também pode gostar: Padrão SingletonDesenhando em JavaPadrão ObserverPrincípios SOLIDDesenho da bandeira do Brasil Deixe seu comentário Nome: E-Mail: Comentario: obrigatório Mostrar na lista de comentários Código de verificação: Digite o código: obrigatório Enviar Limpar Comentários postados: Nenhum comentario visível postado até o momento, deixe o seu! Política de privacidade Produzido por Ítalo Herbert 0