Avançar para o conteúdo principal

Mensagens

Numeração Romana

Vamos hoje fazer um pequeno programa que converte os números da numeração árabe para a numeração romana. Segundo a Wikipédia "O sistema de numeração romana (ou números romanos) desenvolveu-se na Roma Antiga e utilizou-se em todo o seu Império." Uma vez que os romanos não conheciam o 0 (zero) vamos limitar o nosso programa a valores entre 1 e 3999. Para começar definimos dois vetores: Dim valores As Integer() = New Integer() {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1} Dim romanos As String() = New String() {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"} O primeiro tem os valores inteiros que correspondem a determinadas letras que se encontram no segundo. O segundo vetor contém as letras que são combinadas, ou não, e que permitem representar os valores na numeração romana. Para fazermos a conversão vamos criar uma f...

OpenGL Parte II

No artigo anterior criámos a base do nosso pequeno jogo que agora vamos expandir. O objetivo de hoje é ter uma função que lê os modelos exportados do Blender, ou de outro programa de modelação 3D, em formato Wavefront (extensão OBJ) e apresentar esse modelo no controlo SharpGL. Neste nosso pequeno projeto os objetos têm de ser sempre formados por triângulos por isso quando exportamos no Blender temos de garantir que todas as faces são "trianguladas". Fica aqui uma imagem com as opções de exportação a utilizar: O ficheiro com o modelo tem linhas de vários tipos: Vértices: P.Ex: v 0.940139 -0.495046 0.940139 Coordenadas das texturas: P.Ex: vt 0.000000 0.424059 Normais: P.Ex: vn -0.000000 -1.000000 -0.000001 Faces ou triângulos: P.Ex: f 1/1/1 2/2/1 3/3/1 Basicamente com estes três tipos de linhas e com uma imagem podemos moldar qualquer objeto. Os vértices, como é fácil de perceber representam os pontos de cada triângulo (x,y,z), as coordenadas das texturas permitem aplicar a te...

OpenGL

Neste artigo vou apresentar um método simples de como criar aplicações 3D utilizando a linguagem de programação C# através de um controlo que encapsula as funções OpenGL para a plataforma .NET. O controlo a utilizar responde pelo nome de SharpGL . A versão atual do controlo inclui modelos de aplicações que podem ser instalados diretamente na versão 2010 do Visual C#, incluindo a versão Express. Depois de instalado o SharpGL basta escolher o tipo de aplicação pretendida: Windows Forms ou WPF. A partir daqui podemos gravar o projeto criado e abri-lo na versão 2012 do Visual Studio. De seguida é possível exportar o projeto a partir do Visual Studio 2012 como um Template para que se possam criar mais projetos sem ser necessário voltar ao Visual C# 2010. Esta opção abre um Wizard que passo a passo permite gerar o Template na Versão 2012 do Visual Studio. O modelo agora criado apresenta código que permite gerar uma pirâmide 3D a rodar com cores diferentes entre os vertices. O controlo gera ...

Let there be light - vamos fazer uma lanterna

Neste post vamos fazer um pequeno programa que permite utilizar o telefone Android como se de uma lanterna se tratasse. O projeto é muito simples, vamos inserir um botão na interface para ligar e desligar a luz do flash que vamos utilizar para a iluminação. Primeiro a interface, o código: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/relativeLayout1"     android:layout_width="fill_parent"     android:layout_height="fill_parent" >     <Button         android:id="@+id/buttonFlashlight"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_centerVertical="true"         android:layout_centerHorizontal="true"         android:text="Luz" /> </RelativeLayout> Muito si...

Unity 3D - Jogo em Split Screen

Neste artigo vou criar um pequeno jogo para dois jogadores humanos em ecrã dividido utilizando o Unity 3D. Para começar vou mostrar o resultado final. Na parte de cima da imagem anterior temos a composição da cena e na parte de baixo a imagem que os jogadores vão ver quando jogarem. Primeiro vamos preparar a cena e depois vamos ao código, assim adicione um plano para servir de chão e depois defina uma textura a aplicar. Altere o tamanho do plano, nomeadamente a largura nos eixos x e z para acomodar os dois jogadores. Agora que temos o campo de jogo vamos tratar dos jogadores, para isso adicione uma capsule. Agora vamos posicionar esta capsula no lado esquerdo do ecrã. De seguida vamos posicionar a camera que temos na cena atrás da capsula, assim: Continuamos a preparar o jogador do lado esquerdo alterando a sua cor e definindo um ponto de disparo à sua frente, para isso vamos utilizar um ponto vazio. O próximo passo é muito importante porque vai permitir organizar o nosso trabalho por ...

Tem troco

Para hoje um pequeno programa que dá troco, bem dar não dá mas calcula o troco a dar em função das moedas disponíveis. Neste projeto vamos utilizar o novo Visual Studio 2012. Como era de se esperar vamos iniciar um projeto novo: Agora adicionamos os seguintes elementos:  - um botão para calcular as moedas a dar de troco  - um botão para repor o número de moedas iniciais disponíveis  - uma textbox para introduzir o valor a pagar  - uma textbox para introduzir o valor entregue  - umas labels para informar o utilizador do que deve introduzir e outra para mostrar o troco  - por fim uma grelha para mostrar os valores das moedas e as quantidades disponíveis de cada uma. A janela principal do programa fica assim: Agora o código, primeiro o evento load do formulário, neste vamos definir os valores das moedas e as respetivas quantidades Para guardar estes valores vamos necessitar de uma variável definida ao nível do formulário, logo abaixo da definição da ...

Atualizar uma página html com jquery

Neste post vamos implementar uma página web que atualiza o seu conteúdo sem ter de recarregar a página toda. A estrutura básica da página tem as seguintes pastas: \ajax - pasta com ficheiro php que pesquisa a base de dados e devolve o valor encontrado \db - pasta com ficheiro php com instruções para ligação à base dados \js - pasta com código javascript que utiliza a livraria JQuery para atualizar o ficheiro index.html com os dados devolvidos pelo ficheiro php que pesquisa a base de dados. O resultado final será: Se a página fosse construída somente com código html ao clicar no botão "Pesquisar" o browser seria redirecionado para outra página ou para a mesma mas fazendo um reload. Para implementarmos a página sem reload utilizamos código que vai alterar o DOM da página com os dados recolhidos na base de dados. Começamos pela página principal, index.html, com o seguinte código: <!DOCTYPE html> <html> <head> <title>AJAX Database</title...