O TikZ trabalha com dois sistemas de coordenadas: retangulares e polares. Abordaremos aqui algumas formas de se desenhar figuras no TikZ usando essas coordenadas na sua posição absoluta e relativa.
Coordenadas Retangulares
Um sistema de coordenadas retangulares ou coordenadas cartesianas no plano consiste de um par ordenado (x,y) onde x é a entrada referente ao eixo horizontal e y é a entrada referente ao eixo vertical do plano cartesiano.
Plano cartesiano |
Em TikZ as coordenadas retangulares são expressas da mesma forma como a conhecemos nas notações matemáticas, entre parênteses: (x,y)
As entradas x e y aceitam qualquer valor real.
Obs: Por padrão a unidade de medida do TikZ é cm. Mas o TikZ aceita mm, pt (ponto) 1cm = 28.45 pt, in (polegada) 1in = 25.4 mm, etc.
Vejamos alguns exemplos:
Exemplo 1: ponto
Vamos desenhar um ponto na coordenada (2,1), para isso digite:
\fill[blue] (2,1) circle (1mm) node[above right] {$P_1$};
O trecho node[above right] {$P_1$} é para inserir uma legenda no ponto.
Ponto em coord. retangular |
Note que o ponto de origem no sistema de coordenadas retangulares em posição absoluta é o ponto (0,0).
Exemplo 2: reta
Para desenhar uma reta precisamos de pelo menos dois pontos.
\draw[->,blue] (0,0) -- (2,1);
Uma reta saindo da origem e indo até o ponto (2,1).
Reta em coord. retangular |
Exemplo 3: retângulo
Veja no código a seguir que as coordenadas de um retângulo são dadas pelos pontos P1 e P2.
\draw[blue] (1,1) rectangle (4,3);
Retângulo em coord. retangular |
Coordenadas Relativas
As coordenadas relativas funcionam da seguinte forma: dado um ponto fixo (a,b) em coordenadas absolutas o ponto (x,y), em coordenadas relativas, é dado por:
ou (x,y)=(a,b)+(x1,y1).
Ou seja, (a,b) é a nova origem no sistema de coordenadas relativas e (x1,y1) é o ponto que deve ser "somado" à nova origem para se obter o novo ponto (x,y).
Coordenadas relativas |
Exemplo 4: ponto
\fill (2,1) circle (1mm) node[below left] {O};
\fill[blue] (2,1)+(1,1) circle (1mm) node[above right] {$P_1$};
Ponto em coord. relativa |
Repare que o ponto (2,1) é a nova origem e (1,1) é o ponto que somado à nova origem resulta no ponto (3,2).
Exemplo 5: reta
Escreva o código a seguir:
\draw[->,blue] (2,1) -- +(2,1);
Comparando com a reta desenhada anteriormente a única diferença é que agora a nova origem é o ponto (2,1) e a reta vai até o ponto (4,2). Ou seja, o comprimento da reta é o mesmo, porém a reta se deslocou duas unidades para a direita e uma unidade para cima.
Reta em coord. relativa |
Este recurso é bastante interessante quando se deseja desenhar a mesma figura em várias posições diferentes. Veja um exemplo:
\draw[->,blue] (2,1) -- +(2,1);
\draw[->,blue] (3,3) -- +(2,1);
\draw[->,blue] (1,4) -- +(2,1);
Retas em coord. relativa |
Exemplo 6: retângulo
Vamos desenhar o mesmo retângulo da figura anterior, só que agora nos preocuparemos com seu comprimento e sua altura.
\draw[blue] (1,1) rectangle +(3,2);
O ponto inicial é o mesmo P1 dado por (1,1) só que agora o comprimento é 3 unidades e a altura é 2 unidades.
Retângulo em coord. relativa |
Diferença entre + e ++
Em coordenadas relativas podemos usar os símbolos + e ++. A diferença é que enquanto ++ atualiza as coordenadas em relação ao último ponto, o + não atualiza, permanecendo sempre em relação ao ponto inicial da figura.
Veja na figura a seguir que com o uso de ++ a coordenada é sempre relativa ao último ponto da figura.
\draw[->,blue] (2,1) -- ++(1,0) -- ++(0,-1) -- ++(-1,0) -- ++(0,1);
Figura desenhada com ++ |
No segundo quadro a origem é P2 e o ponto final é P3;
No terceiro quadro a origem é P3 e o ponto final é P4;
E no quarto quadro a origem é P4 e o ponto final é P1.
Na figura seguinte o uso de + tem sempre o ponto (2,1) como ponto de referência.
\draw[->,blue] (2,1) -- +(1,0) -- +(0,-1) -- +(-1,0) -- +(0,1);
Figura desenhada com + |
Coordenadas Polares
O sistema de coordenadas polares consiste de uma distância (ou raio) e da medida de um ângulo em relação a um ponto fixo O chamado de pólo e uma semi-reta fixa chamada de eixo polar.
Coordenadas polares |
Veja a seguir como é uma grade em coordenadas polares.
Grade em coordenadas polares |
Vejamos alguns exemplos de retas desenhadas em coordenadas polares:
Exemplos 7 e 8
\draw (0,0) -- ++(45:2);
\draw (0,0) -- ++(135:3);
|
|
---|
\draw (0,0) -- ++(210:2);
\draw (0,0) -- ++(315:3);
|
|
---|
Exemplos 11: Combinando coordenadas relativas e coordenadas polares
Para que a origem da reta fique num ponto diferente de (0,0) precisamos combinar coordenadas relativas e coordenadas polares, para isso digite:
\draw (2,1) -- ++(45:2);
Reta em coordenadas polares com origem num outro ponto. |
Exemplos 12 e 13: Losango e Círculo com raio
Um exemplo ideal para a utilização desta técnica é quando se deseja desenhar um losango de 3 cm de comprimento e inclinação de 60º.
\draw[fill=yellow] (0,0) -- (3,0) -- ++(60:2) -- ++(-3,0) -- cycle;
Ou um círculo de raio unitário com indicação do raio.
\begin{tikzpicture}[>=latex]
\draw (2,1) circle (1);
\fill (2,1) circle (1pt);
\draw[->] (2,1) -- ++(45:1);
\end{tikzpicture}
Note que o círculo está fora da origem.
|
|
---|
Operações algébricas com coordenadas
O TikZ calcula valores diretamente na entrada das coordenadas graças à 'biblioteca' calc.
Exemplo 14: Soma e subtração de coordenadas
\fill[red] (2,1) circle (2pt);
\fill[blue] (2+1,1+1) circle (2pt);
\fill[blue] (2-1,1-1) circle (2pt);
O ponto P2 foi obtido pela soma de 1 unidade em cada uma das entradas da coordenada. E o ponto P3 pela subtração de 1 unidade em cada uma das entradas.
Soma e subtração de coordenadas |
\fill[red] (2,1) circle (2pt);
\fill[blue] (2*2,1*2) circle (2pt);
\fill[blue] (2/2,1/2) circle (2pt);
O ponto P2 foi obtido pela multiplicação por 2 em cada uma das entradas da coordenada, resultando assim no ponto (4,2). E o ponto P3 pela divisão por 2 em cada uma das entradas, resultando no ponto (1,0.5).
Multiplicação e divisão de coordenadas |
Exemplo 16: Medidas no losango
\begin{tikzpicture}[>=latex]
\draw[fill=yellow] (0,0) -- (3,0) -- ++(60:2) -- ++(-3,0) -- cycle;
\draw[->] (0,0) ++(.5,0) arc (0:60:.5);
\node[below] at (3/2,0) {$3$};
\node at (45/2:1) {$60^\circ$};
\end{tikzpicture}
Repare nas linhas a seguir o uso do operador de divisão.
\node[below] at (3/2,0) {$3$};
\node at (45/2:1) {$60^\circ$};
Losango com medidas |
Nomeando coordenadas
Um recurso muito interessante no TikZ é a possibilidade de usar pontos nomeados. Para nomear uma coordenada escreva:
\coordinate (A) at (0,0);
\coordinate (B) at (2,1);
Agora temos o ponto A na coordenada (0,0) e o ponto B na coordenada (2,1). Agora podemos desenhar uma reta do ponto A ao ponto B.
\draw (A) -- (B);
Coordenadas nomeadas |
\begin{tikzpicture}
\coordinate[label=left:A] (A) at (0,0);
\coordinate[label=right:B] (B) at (2,1);
\draw (A) -- (B);
\end{tikzpicture}
As opções label=left:A e label=right:B colocam uma legenda a esquerda de A e a direita de B, respectivamente.
Também é possível desenhar um ponto e nomeá-lo logo na sequência. Digite:
\draw (A) -- (B) -- (4,0) coordinate[label=right:C] (C);
Acabamos de nomear o ponto C na coordenada (4,0) diretamente no desenho da reta.
Agora podemos fechar o triângulo.
\draw (A) -- (C);
Veja o código completo:
\begin{tikzpicture}
\coordinate[label=left:A] (A) at (0,0);
\coordinate[label=above:B] (B) at (2,1);
\draw (A) -- (B) -- (4,0) coordinate[label=right:C] (C);
\draw (A) -- (C);
\end{tikzpicture}
Coordenadas nomeadas |
Exemplo 17: Reta paralela com comprimento definido
No código a seguir vamos desenhar uma reta paralela aos pontos A e B começando por C, que está a uma distância de 3mm de A, e com comprimento de 1cm.
\begin{tikzpicture}
\coordinate[label=left:A] (A) at (1,1);
\coordinate[label=right:B] (B) at (2,1);
\fill[blue] (A) circle (1pt);
\fill[blue] (B) circle (1pt);
\draw[->,red] (A)++(0,3mm) coordinate[label=C] (C) -- ++(1,0);
\fill[red] (C) circle (1pt);
\end{tikzpicture}
Observe na linha \draw[->,red] (A)++(0,3mm) coordinate[label=C] (C) -- ++(1,0); que o ponto (A)++(0,3mm) é chamado de C. Somente dessa forma que ele pode ser computado para a coordenada onde se encontra, e a partir dai ser usado como ponto C.
Reta paralela com comprimento definido |
Exemplo 18
É claro que podemos usar o mesmo ponto várias vezes.
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,1);
%pontos
\fill[blue] (A) circle (1pt) (B) circle (1pt);
%legendas
\node[left] at (A) {A};
\node[right] at (B) {B};
%retangulo
\draw[fill=yellow] (A) rectangle (B);
%reta
\draw (A) -- (B);
\end{tikzpicture}
Exemplo de pontos nomeados |
Este artigo também está disponível no scribd.
Palavras-chave: TikZ, figuras, coordenadas cartesianas, coordenadas retangulares, coordenadas relativas, coordenadas polares, posição absoluta, posição relativa, nomeando dando nome a coordenadas no TikZ
Excelente artigo!!
ResponderExcluirOlá, Regis
ResponderExcluirOnde posso encontrar o artigo sobre como criar os eixos com as coordenadas (x,y) e como fazer que os números apareçam em cada um. Por exemplo eu gostaria que em vez de (1,2,3,4,5 ...) aparecesse (z1,z2,z3,z4,z5, ...).
Esse material é bem interessante pois abre muitas possibilidades de trabalhar com latex. Obrigado pelo material.
Aramis, este artigo foi eu que escrevi a partir do manual do Tikz(PGF). Quanto ao exemplo que voce pediu veja em
Excluirhttps://www.writelatex.com/92908vzhtqt
Excelente artigo! Informação muito útil para mim.
ResponderExcluirComo eu faço para desenhar um eixo em 3D?
ResponderExcluirMaterial muito bom.
ResponderExcluir