terça-feira, 16 de outubro de 2012

PGF/Tikz

Turbinando os desenhos em LaTeX

Muita gente que precisou criar uma ilustração em LaTeX e tentou usar o ambiente 'picture', deve ter tido o mesmo sentimento de frustração que eu. O ambiente 'picture, nativo de LaTeX é bom, mas deixa muito a desejar, em especial se você precisar 'colorir' pequenas áreas, ou criar uma forma geométrica mais livre.

Para isso foi criado o PGF/Tikz, um pacote incrível, que permite desenhar qualquer coisa, quase a 'mão livre.'

O pacote disponibiliza o ambiente 'tikzpicture', que tem uma lógica muito simples:

  1. Um comando que define desenho (\draw), area (\path) ou elemento (\node).
  2. Uma coordenada do tipo (x,y) do plano cartesiano, que indica onde o objeto começa.
  3. tipo do objeto, como linha (--), circulo (circle), retângulo (rectangle) etc.
  4. Uma coordenado do tipo (x,y) do plano cartesiano, que indica o fim do objeto.
Exemplo: \draw (0,0) -- (2,0); O comando acima desenha uma linha de dois centímetros. Já o comando abaixo cria uma curva par cima: \draw (0,0) to [out=0,in=270] (1,1); O interessante o tikz é que você não precisa ficar em apenas dois 'nós', se quiser fazer uma linha angulada para cima basta fazer: \draw (0,0) -- (1,0) -- (2,1); Você pode continuar desenhando, mesclando ângulos de entrada e saída sempre que precisar, por quantos nós precisar. Uma coisa muito interessante do Tikz é a possibilidade de desenhar o gráfico de uma função, entrando apenas os pares ordenados dela, calculados em outro programa (no meu caso eu crio o script em python para calcular os pares ordenados). Veja um exemplo neste arquivo aqui. Neste outro arquivo, uma ilustração de física feita em tikz, veja aqui. Até a próxima.

Continue Lendo >

sábado, 25 de agosto de 2012

Coordenadas de uma Hiperbole

Calculando com Python

Python é mesmo uma 'calculadora' em forma de linguagem. Não atoa é usada até na ISS (International Spacial Station).

Revisando o plano cartesiano (por que? por que é legal!) enfrentei um exercício que pedia todos os resultados possíveis da equação y=12/x... Então por que não usar python para isso?

O trabalho com python é tão simples que tudo levou menos de 5 minutos. Pela primeira vez (claro que devemos considerar o código ser bem simples) eu codifiquei e rodei sem erros logo de primeira.


Veja o código aqui. Observe que ele pode ser facilmente adaptado para outras equações, já que o calculo acontece com 'x' e 'y' e a lista de resultados é gerada com 'a' e 'b', que convertem x e y (respectivamente) para ponto flutuante com uma casa decimal.


Você pode aumentar as casas decimais, alterando o numero em %.1f para o numero de casas que precisar.


Nerdices a mil, pessoal. Até a próxima.

Continue Lendo >

sábado, 11 de agosto de 2012

Dois pequenos ASM

Continuar é preciso

Dando seguimento ao 'projeto PN-IBMPC' (nome que dei ao meu plano de 'traduzir' os exercícios do livro 'Linguagem Assembly para IBM PC - Peter Norton' para Assembly NASM/Gcc/Linux) eu consegui, com a ajuda dos membros da osdevbrasil, concluir o programa do capitulo 4 - imprimindo números binários.

De quebra também criei um pequeno código que imprime todo o alfabeto na tela. Este código utiliza os mesmos conhecimentos do código 'imprimindo números binários'.

http://pastebin.com/0AcM3qSv e http://pastebin.com/YzjG31VL. Bons estudo =].

Em breve um manual em Latex/pdf com as lições bem organizadas e estruturadas como no livro.

Continue Lendo >

sábado, 4 de agosto de 2012

Engenharia de software

Bom material para iniciantes

Achei no apostilando um material muito bom para introduzir o assunto. Estava dividido em 9 partes que eu uni em um unico pdf usando LaTeX.
Pegue a apostila aqui.

Continue Lendo >