Professional Documents
Culture Documents
Desenhando
Diego Oliveira |no Latex com Tikz
nibblediego@gmail.com
www.number.890m.com
Desenhando no Latex com Tikz
nibblediego@gmail.com |
c | www.number.890m.com
Sumário
1 O QU E
TO ´Z?
IK
E 5
1.1 O Qtikz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 O TikzEdt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 O Geogebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 U SANDO O TIKZ NO KILE OU NO TEXMAKER 7
LI3NHAS 7
3.1 Arestas: M iter Limit . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Atributos de Espessura . . . . . . . . . . . . . . . . . . . . 10
3.2.2 Atributo de Cor . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.3 Atributos de Estilo . . . . . . . . . . . . . . . . . . . . . . 11
3.2.4 Atributos em Grupo . . . . . . . . . . . . . . . . . . . . . . 11
ˆ NGULOS
4 RE T A 12
6 COORDENADAPOLAR 17
7GRADE
(Grid) 17
CO R
8 18
8.1 Fill e Filldraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
8.2 Shade : G radiente . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
8.3 Opacidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
9 LEGENDASN
: ODE 24
10 REPETIC
¸A˜ OF:OREACH 25
1 1 FU N C
¸O˜ ES 26
12CURVASNOTIKZ 28
12.1 Pa rábolas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12.2 Ro unded Corners . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
12.3 Comando To . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
12.4 S mooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
12.5 Curvas de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
C1L5IP 39
15.1 REFER ÊNCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4
www.number.890m.com
1 O QUE É O TIKZ?
O Tikz é um pacote para latex desenvolvido por Até Tantau para a produção
de imagens vetoriais a partir de descri¸cões analı́ticas. O Tikz pode ser usado em
qualquer ambiente latex como, por exemplo, Kile ou Texmaker embora seu uso
para estudo seja mais vi´ avel no software Qtikz ou TikzEdt, pois oferecem uma
prévia do que está sendo desenhado em tempo real sem a necessidade de ter de
compilar o documento a cada linha escrita para saber o que est´ a ocorrendo. O
Qtikz está presente na central de programas do Ubuntu mas antes deve se ter um
compilador de latex já instalado para poder utiliza-lo. Tanto o Qtikz como TikzEdt
estão disponı́veis para Windows. Recomendo a instalação do TikzEdt por ser mais
completo.
O download do Qtikz e TikzEdt podem ser feitos através do link abaixo.
http://www.hackenberger.at/blog/ktikz-editor-for-the-tikz-language/
1.1 O Qtikz
Este programa não é tão completo como seu “concorrente”, o TikzEdt, mas
ganha do mesmo em questão de estabilidade. Está disponı́vel tanto para Windows
como para Linux.
1.2 O TikzEdt
O TikzEdt é o programa mais completo que se pode achar atualmente. Mas, in-
felizmente só se encontra dispon´ıvel para Windows e não funciona bem emulado com
o Wine. Também não está em sua vers˜ ao final e como é um projeto desenvolvido
pela comunidade ainda está em sua versão beta e não sairá dela tão cedo. Além
disso, possui alguns problemas que podem acarretar em seu mau funcionamento.
5
1.3 O Geogebra www.number.890m.com
1.3 O Geogebra
Você pode usar o Geogebra para gerar algum código em latex embora isso
seja pouco recomendável. Por exemplo, abra o Geogebra e desenhe um cı́rculo de
raio igual a um. Em seguida vá no menu: Arquivo > Exportar > Janela de
ao como PGF/Tikz. Irá aparecer a seguinte janela.
Visualiza¸c˜
O campo xMin, yMin, xMáx e yMáx são as coordenadas da tela do Geogebra que
será capturada. Apenas os desenhos dentro desse retângulo é que ser˜
ao consideradas
para geração dos códigos. Experimente modifica-los enquanto olha para a tela do
Geogebra.
6
www.number.890m.com
O Geogebra seria perfeito para gerar nossos códigos em latex, entretanto quando
a figura é muito complexa o programa quase sempre erra na geração do código e
sempre escreve linhas desnecessárias que podem necessitar serem apagadas para
serem utilizadas em outros programas.
\usepackage{tikz}
\begin{tikzpicture}
% Toda instruç~
ao fica dentro do ambiente.
\end{tikzpicture}
Toda instrução que utiliza-se do pacote Tikz deve ser escrita dentro do ambiente
tikzpicture, caso contrário o documento nem será compilado.
Se por acaso o pacote tikz não estiver instalado em sua máquina você pode
baixa-lo. O arquivo baixado terá a extensão .sty, coloque-o no mesmo diret´orio do
seu arquivo .tex. Com isso ele já estará pronto para ser usado.
3 LINHAS
Para desenhar a maioria das figuras usamos o comando draw (desenho) ele é
o comando mais básico do Tikz.
\ begin {tikzpicture}
\draw(0,0)--(4,0);
\ en d {tikzpicture}
A instrução acima desenha uma linha reta com extremos em (0, 0) e (4, 0).
Você também pode fazer uma sequencia de segmentos que vai de p onto a ponto:
7
www.number.890m.com
\ begin {tikzpicture}
\dr aw( 0,0 ) -- (1, 2) -- (2, 3)
--(1,0);
\ en d {tikzpicture}
Outra forma de desenhar linhas é indicando seu ponto inicial e depois o quanto
cada coordenada desse ponto deve ser incrementada para que seja formado o se-
gundo extremo da reta. Por exemplo, imagine um segmento com uma extremidade
em (1, 2) e outra em (2, 3). Escrevendo esse segundo ponto em fun¸ cão do primeiro
ficaria.
\ begin
\dra {tikzpicture}
w(1, 2)--++ (1, 1);
\ en d {tikzpicture}
\ begin {tikzpicture}
\dra w(1, 2)--( 2, 3);
\ en d {tikzpicture}
Esse recurso pode ser usado também com números negativos e racionais.
\ begin {tikzpicture}[line
width=5pt]
\draw[miter limi t=25](6,0)
--++(5,.5) --++(-5,.5);
\ en d {tikzpicture}
Se você é do tipo que não gosta muito de escrever existe uma maneira de
desenhar várias linha de um modo mais enxuto. Por exemplo, o código a seguir
8
3.1 Arestas: Miter Limit www.number.890m.com
\ begin {tikzpicture}
\draw[line width=1pt]
(0,0) --(1,0)(0,.5) --(1,.5)
(0,1)--(1,1);
\ en d {tikzpicture}
é equivalente a:
\ begin {tikzpicture}[line
width=1pt]
\draw(0,0)--(1,0);
\draw (0,.5) --(1,.5);
\draw(0,1)--(1,1);
\ en d {tikzpicture}
Um problema que pode surgir ao usar o line width ocorre na quest˜ ao das arestas
que tendem a se formar. Observe o desenho abaixo.
\ begin {tikzpicture}[line
width=5pt]
\draw(6,0) --(11,.5)--(6,1);
\ en d {tikzpicture}
3.2 Atributos
• Atributos de espessura;
• Atributo de cor;
• Atributos de estilo.
9
3.2 Atributos www.number.890m.com
Para modificar esses atributos você deve coloca-los entre chaves depois do co-
mando draw e separados por vı́rgula caso haja mais de um.
Por exemplo, a linha a seguir teve sua espessura alterada para 10 pontos através
do atributo line whidth e cor modicada para vermelho através do atributo color.
\ begin {tikzpicture}
\dra w [lin e wid th=10p t,
color = red](0,0) --(4,0 );
\ en d {tikzpicture}
A ordem com que os atributos são informados não faz a menor diferença.
Esse grupo de atributos são compostos pelos comandos: ultra thin , very thin ,
thin, semithick, thick e o mais importante o line whidth .
\ begin {tikzpicture}
\dra w [ult ra th in](0, 0)
--(4,0);
\dra w [ver y thi n](0,0 )
--(4,0);
\draw [thin](0,0) --(4,0 );
\draw [ semith ick](0,0)
--(4,0);
\draw [thick](0,0) --(4,0 );
\dra w [lin e wid th=10p t](0,0 )
--(4,0);
\ en d {tikzpicture}
\ begin {tikzpicture}
\dra w [lin e wid th=.5c m](0,1 )
--(4,1);
\dra w [lin e wid th=2e x](0,0 )
--(4,0);
\ en d {tikzpicture}
Para alterar a cor de uma linha o processo é semelhante. Usamos o draw e entre
chaves colocamos o nome da cor.
10
3.2 Atributos www.number.890m.com
\ begin {tikzpicture}
\draw [red](0,0) --(4,0 );
\ en d {tikzpicture}
\ begin {tikzpicture}
\dra w [col or = re d](0,0 )
--(4,0);
\ en d {tikzpicture}
\ begin {tikzpicture}
%linha pontilh ada
\draw[dotted](0,0) --(4,0);
%linha tracej ada
\draw[dashed](0,-1)--(4,-1);
%lin ha com bor da
\ en d {tikzpicture}
% da sh ed ap li ca do ao
ambiente
\ begin {tikzpicture}[dashed]
\draw(0,0)--(4,0);
\ en d {tikzpicture}
% do tt ed ap li ca do ao
ambiente
\ begin {tikzpicture}[dotted]
\draw(0,0)--(4,0);
\ en d {tikzpicture}
11
www.number.890m.com
% li ne wi dt h ap li ca do ao
ambiente
\ begin {tikzpicture}[line
wi dt h = .4c m]
\draw(0,0)--(4,0);
\ en d {tikzpicture}
4 RET ÂNGULOS
\ begin {tikzpicture}
% Qu ad rad o de fi ni do pe lo s 4
vertices
\dr aw (0, 0) -- (2,0 ) --
(2, 2) -- (0, 2) -- cy cl e;
\ en d {tikzpicture}
\ begin {tikzpicture}
\draw(0,0)rectangle(2,2);
\ en d {tikzpicture}
coordenada
para linha jásuperior
sabemosdireita
o que. ela
O que é bem mais
faz (desenha umpr´atico. Além
retângulo), disso
o que só de futura
facilita olhar
manutenção do seu código caso haja necessidade.
\ begin {tikzpicture}
\draw(0,0)rectangle++(2,2);
\ en d {tikzpicture}
12
www.number.890m.com
Um homem.
Um gato.
Livro.
13
www.number.890m.com
\ begin {tikzpicture}
% Circ unfe renc ia de rai o 0. 5
cm e ce nt ro em (0,0 )
\draw(0,0)circle(0.5cm);
% Ce nt ro em (2,0 ) e ra io de
1 ra d.
\dra w (7,0 .5) cir cle [radi us
=1];
\ en d {tikzpicture}
\ begin {tikzpicture}
% Eli pse:
\draw(1,1)ellips e(1.5cm and
0.5cm);
\ en d {tikzpicture}
1.5cm 0.5cm
O comando para arcos depende de três parâmetros: angulo inicial, angulo final
e raio do arco.
\ begin {tikzpicture}
% Ar co
\dra w(6,0) ar c [radi us=3c m,
sta rt ang le=0, en d ang le=
75];
\ en d {tikzpicture}
O arco acima têm srcem em (3, 0) raio de 3cm e faz um angulo no sentido
horário que vai de 0 a 75 .
◦ ◦
14
www.number.890m.com
Para que você visualize melhor o que está sendo dito observe o mesmo arco
desenhado sob uma grade marcada e com srcem no ciclo trigonométrico.
◦
90
◦
60
◦
45
◦
30
◦
0
(0,0) (3,0)
O comando arc pode ser escrito de uma forma mais sintetizada, veja:
\ begin {tikzpicture}
% Ao in ve s de [ra di us= 3c m,
sta rt ang le=0, en d ang le=
75 ]
\draw(6,0)arc(0:75:3cm);
\ en d {tikzpicture}
\ begin {tikzpicture}
% Arc o inv ert ido
\dra w [red] (3,0 ) arc
\ en d(0:-75:-3cm);
{tikzpicture}
\ begin {tikzpicture}
% Ar co no se nt id o an ti-
horario
\dra w[blu e] (3,0 ) ar c
(0:75:-3cm);
\ en d {tikzpicture}
15
5.1 SETAS www.number.890m.com
5.1 SETAS
% Se ta pa ra di re it a
\ begin {tikzpicture}
\draw[->](3,0)--(4,0);
\ en d {tikzpicture}
Nesse caso a seta fica voltada para o ponto mais a direita do comando draw.
No caso (4, 0).
Agora a seta fica voltada para o ponto mais a esquerda do comando draw. Que
no caso ainda é o ponto (4, 0).
% Se ta du pl a
\ begin {tikzpicture}
\dra w [<->] (3,0 ) --( 4,0 );
\ en d {tikzpicture}
Qualquer linha reta ou curva pode ser setada colocando se [- >]. No exemplo
abaixo, por exemplo, temos um arco setado.
\ begin {tikzpicture}
% Ar co se ta do
\dra w [lin e wid th=3p t, ->
]( 3,0) ar c (0 :-75 :-3cm);
\ en d {tikzpicture}
16
www.number.890m.com
% Se ta du pl a
\ begin {tikzpicture}
\dra w [|-> ] (0,0 ) --( 1,0 );
\draw[dott ed , >->>](0, 1) --
(1,1);
\dra w[|<->|]( 0,2) -- (1,2 );
\d ra w[d ashed , o- )] (0, 3)
-- (1,3 );
\dra w[loos ely das hed] (0,4 )
-- (1,4 );
\dra w[dens ely dot ted] (0,5 )
-- (1,5 );
\ en d {tikzpicture}
6 COORDENADA POLAR
\ begin {tikzpicture}
% Coo rden ada Pol ar
\draw (0,0) --++(45:2);
\ en d {tikzpicture}
\ begin {tikzpicture}
\filldraw[fill=yel low , draw=
black](0 ,0) --++(45:1)arc
(45:360:1cm)--cycle;
\filldraw[fill=wh ite, draw=
black](-0.2,.5)circle(.1
cm);
\ en d {tikzpicture}
7 GRADE (Grid)
17
www.number.890m.com
\ begin {tikzpicture}
\draw[step=1cm](-1,-1)grid
\ en d(3,3);
{tikzpicture}
O step informa que cada quadro da grade terá um centı́metro de largura e altura.
\ begin {tikzpicture}
% gra de pont ilh ada
\dra w[das h pat ter n=on 3pt
of f 3p t, ste p=1cm
](-0.9,-0.9)grid(2.9,2.9)
;
\ en d {tikzpicture}
Uma opção ao atributo step são o xstep e o ystep. Com eles podemos ter
maior controle sobre o tamanho dos quadros na grade.
\ begin {tikzpicture}
\draw[xstep=1, ystep
=.5](-1,-1)grid(3,3);
\ en d {tikzpicture}
8 COR
Podemos fazer imagens coloridas com o Tikz. Para isso é necessário apenas que
o pacote xcolor esteja carregado no pré-ambulo. As cores que poderão ser usadas
são:
18
8.1 Fill e Filldraw www.number.890m.com
Cyan Lightgray
Pink Yellow
Orange Violet
Brown Purple
Blue Magenta
Black Green
Red Gray
Para usar qualquer uma destas cores basta escreve-la como atributo do draw.
Veja o exemplo.
\ begin {tikzpicture}
\draw[red](0,0)rectangle
++(2,2);
\ en d {tikzpicture}
\ begin {tikzpicture}
\draw[red!50!gr een, line
wid th = 3pt]( 0,0)
rectangle++(2,2);
\ en d {tikzpicture}
\ begin {tikzpicture}
% De se nh a o co nt orn o do
retangulo
\draw[cyan](0,0)rectangle
(2,2);
\ en d {tikzpicture}
19
8.2 Shade : Gradiente www.number.890m.com
\ begin {tikzpicture}
% Pi nt a o re ta ng ulo se m
contorno
\ fill [cyan](0,0)rectangle
(2,2);
\ en d {tikzpicture}
\ begin {tikzpicture}
% De se nh a o co nt orn o do
ret ang ulo e pin ta se u
interior
\filldraw[fill=cy an, draw=
black](0,0)rectangle(2,2)
;
\ en d {tikzpicture}
O draw desenha apenas linhas ou contornos das figuras. Já o fill é usado para
preencher o interior de figuras fechadas mas, não é capaz de desenhar seus con-
tornos. O filldraw além de preencher a forma com cor mantem uma borda de cor
especificada.
\ begin {tikzpicture}
\shade[left color=blu e,
right color=re d](0,0)
rectangle(4,4);
\ en d {tikzpicture}
\ begin {tikzpicture}
\shade[top color=blu e,
botto m color=re d](0,0)
rectangle(4,4);
\ en d {tikzpicture}
20
8.2 Shade : Gradiente www.number.890m.com
\ begin {tikzpicture}
\shade[inner color=blue,
outer color=re d](0,0)
rectangle(4,4);
\ en d {tikzpicture}
\ begin {tikzpicture}
\shade[shading=ba ll, ball
col or=blu e] (0,0 ) cir cle
(2);
\ en d {tikzpicture}
\ begin {tikzpicture}
\ fill [lef t col or=bl ue, rig ht
color=red](0,0)rectangle
(4,4);
\ en d {tikzpicture}
\ begin {tikzpicture}
% Em ci ma e em ba ix o
\ fill [top col or=bl ue, bot tom
color=red](0,0)rectangle
(4,4);
\ en d {tikzpicture}
21
8.3 Opacidade www.number.890m.com
\ begin {tikzpicture}
% No ce nt ro
\ fill [inner color=blu e,
\ begin {tikzpicture}
\ fill [shading=ba ll, ball
col or=blu e] (0,0 ) cir cle
(2);
\ en d {tikzpicture}
8.3 Opacidade
As vezes é necessário o preenchimento com uma cor opaca. Para isso tem-se o
atributo opacity.
\ begin {tikzpicture}[opacity
=0.5]
\filldraw[fill=red] (0:1cm)
circl e (12mm);
\filldraw[fill=gree n] (120: 1
cm) cir cle (1 2mm);
\filldraw[fill=blu e] (-120:1
cm) cir cle (1 2mm);
\ en d {tikzpicture}
22
8.3 Opacidade www.number.890m.com
\ begin {tikzpicture}[opacity
=0.5]
% Circ ulos co m bor das neg ras
\filldraw[fill=red,line
wid th=3p t] (0: 1cm) cir cle
(12mm);
\filldraw[fill=green,line
width=3pt] (120:1cm)
circl e (12mm);
\filldraw[fill=blue,line
width=3pt] ( -12 0:1cm)
circl e (12mm);
\ en d {tikzpicture}
\ begin {tikzpicture}[fill
opacity=0.5]
\filldraw[fill=red,line
width=3pt](0:1cm)circle
(12mm);
\filldraw[fill=green,line
width=3pt](120:1cm)circle
(12mm);
\filldraw[fill=blue,line
width=3pt](-120:1cm)
circle(12mm);
\ en d {tikzpicture}
23
www.number.890m.com
9 LEGENDAS: NODE
\ begin {tikzpicture}
% Esc rit a nor mal
Legenda \draw(0,0)node{Legenda};
% Es cr it a em it al ic o
\draw(0,1)node{{\it Legen da
Legenda }} ;
% Le tr a de ma qu in a
\draw(0,2)node{{\tt Legen da
Legenda
}} ;
% Tam anh o gra nde
Legenda \draw(0,3)node{{\ Huge
Legenda}};
% Neg rit o
Legenda \draw(0,4)node{{\bf Legen da
}} ;
\ en d {tikzpicture}
Quando usamos legendas em pontos pode ser ´util deslocar a legenda para cima
para baixo ou mesmo para os lados. Veja os exemplo:
\ begin {tikzpicture}
% Le ge nd a ab ai xo do po nt o
\ fill (0,3)circle(0.05cm)node
D [above]{D};
% Le ge nd a ac im a do po nt o
\ fill (0,2)circle(0.05cm)node
[below]{C};
C % Le ge nd a a di re it a do po nt o
\ fill (0,1)circle(0.05cm)node
B
% Le[right]{B};
ge nd a a es qu erd a do
A ponto
\ fill (0,0)circle(0.05cm)node
[left]{A};
\ en d {tikzpicture}
24
www.number.890m.com
\ begin {tikzpicture}
% Te xt o
a2 \draw[red](0,0)node{Legenda
8 };
% Equ aca o
\draw(0,1)node{$\dfrac{a
Legenda ^2}{8}$};
\ en d {tikzpicture}
10 REPETIÇÃO: FOREACH
O foreach é usado como uma espécie de loop dentro do latex. Veja um exemplo.
\ begin {tikzpicture}
\fore ach \x in {0,1, 2,3,4 }
\dra w(\x cm,1 )--(\x cm,-1 );
\ en d {tikzpicture}
A primeira linha
\foreach \x in {0,1,2,3,4}
cria uma vari´avel “x” igual a zero e indica que todos os comandos escritos ap´ os
ele, e que possuem a variável “x”, serão repetidos 5 vezes. Na primeira vez o “x”
será igual a 0, depois 1 até chegar ao 4.
Em teoria ela cria um segmento na vertical. Com o foreach o “x” varia de 0 até
4 desenhando não apenas um mas 5 segmentos.
\ begin {tikzpicture}
\draw(0,1)--(0,-1);
\draw(1,1)--(1,-1);
\draw(2,1)--(2,-1);
\draw(3,1)--(3,-1);
\draw(4,1)--(4,-1);
\ en d {tikzpicture}
25
www.number.890m.com
\ begin {tikzpicture}
\ begin {tikzpicture}
\dra w[->] (-5. 5,0) -- (0,0 )
nod e [rig ht] {$ \math bb{R
R }$};
-5 -4 -3 -2 -1 0 \fore ach \x in {-5,. ..,0 }
\dr aw (\ x, 0. 1) -- (\x,
-0 .1 ) nod e [bel ow] {\x} ;
\ en d {tikzpicture}
\ begin {tikzpicture}
\fore ach \x in {1, 2,3}
\sha de[bal l col or=re d!\x 0!
gre en] (\x, 0) cir cle (3m m
);
\ en d {tikzpicture}
\ begin {tikzpicture}
\fore ach \x in {9,. ..,1 }
\draw[fill=blue!\x0] ( -0. 1*\
x - 1 , -0.1*\x )
re ct an gl e (0 .1 *\x + 1,
0.1 *\x );
\ en d {tikzpicture}
11 FUNÇÕES
Algumas curvas podem ser representadas por equa¸ cões explicitas isto é, com
y em função de x. Com o pac ote Tikz equa¸cões explicitas podem ter sua curva
desenhada também através do draw.
26
www.number.890m.com
% gr af ic o de fu nc ao
\ begin {tikzpicture}
\draw[->](-3,0)--(3,0);
\draw[->](0,-1)--(0,4);
% Pl ot ag em de -2 a 0
\draw[blue,domain=-2:0]plot
(\x,{(\x)^2});
% Pl ot ag em de 0 a 2
\draw[blue,domain=0:2]plot(\
x,{\x^2});
\ en d {tikzpicture}
sin(\x, r)
factorial(\x)
sqrt(\x)
pow(\x,y) que xy .
exp(\x)
ln(\x)
log10(\x)
log2(\x)
abs(\x) valor absoluto.
mod(\x,y) x modulo y.
round(\x)
floor(\x) inteiro mais pŕoximo.
ceil(\x) o menor numero maior que x.
sin(\x) seno expresso em graus.
sin(\x r) seno expresso em radiano.
cos(\x)
cos(\x r)
tan(\x)
tan(\x)
tan(\x r)
min(\x,y,)
max(\x,y)
Você pode até usar rnd (sem argumento) que produz um n´ umero aleatório
entre 0 e 1 ou pi.
Mais um exemplo.
27
www.number.890m.com
% gr af ic o de fu nc ao
\ begin {tikzpicture}[scale
=0.8]
\draw[->](-3.14,0) --(3.14,0)
;
\draw[->](0,-1.1) --(0,1.1);
\draw[ blue,smooth ,samples
=100,domain=-3.14:3.14]
plot(\x,{si n(\x r)});
\ en d {tikzpicture}
12 CURVAS NO TIKZ
12.1 Parábolas
\ begin {tikzpicture}
\draw(0,0)parabola(2,2);
\ en d {tikzpicture}
Acima vemos uma parábola com origem em (0, 0) e extremo em (2, 2). Poderı́amos
também ter usado o ++ para incremento.
\ begin {tikzpicture}
\draw(0,0)parabola++(2,2);
\ en d {tikzpicture}
\ begin {tikzpicture}
\draw(0,0)rectangle++(2,2);
\draw[rounded corner s=0.5cm
](2.5,0)rectangle++(2,2);
\ en d {tikzpicture}
28
12.3 Comando To www.number.890m.com
\ begin {tikzpicture}
\draw(0,0)rectangle++(1,1);
\draw[rounded corner s=0.1cm
](2,0)rectangle++(1,1);
\draw[rounded corner s=.5cm
](4,0)rectangle++(1,1);
\ en d {tikzpicture}
12.3 Comando To
O comando To é utilizado para unir com uma linha dois pontos sendo que, existe
um angulo inicial para saı́da da linha e um angulo final para o ponto de destino.
\ begin {tikzpicture}
% Re ta
\draw(0,0)to(2,3);
\ en d {tikzpicture}
\ begin {tikzpicture}
\draw(3,0) to[out=9 0,in=180]
(5,3);
\ en d {tikzpicture}
29
12.4 Smooth www.number.890m.com
\ begin {tikzpicture}
\draw[blue](0,0)to[out=90,in
=225](1,2)to[out=-45,in
=90](2,0);
\draw[brown](3,0)to[out=90,
in=-90](4,2)to[out=-90,in
=90](5,0);
\ en d {tikzpicture}
12.4 Smooth
A função smoth faz com que os p ontos de uma curva sejam conectados de
maneira suave. Um exemplo de sua estrutura é:
\ begin {tikzpicture}
\draw[smooth] plot
coordinates{(0,0)(1,1)
(2,0)(3,1)};
\draw[ dashed ,color= gray
](0,0) --(1,1)--(2,0)
--(3,1);
\ en d {tikzpicture}
\ begin {tikzpicture}
\draw[smoo th , tensio n=1]
plot coordin ates{(0,0)
(1,1)(2,0)(3,1)};
\draw[ dashed ,color= gray
](0,0) --(1,1)--(2,0)
--(3,1);
\ en d {tikzpicture}
30
12.5 Curvas de Bézier www.number.890m.com
O smoth é uma ferramenta muito poderosa. Com ela vários esboços podem
ser feitos. Inclusive a de fun¸cões matemáticas complexas.
É possı́vel desenhar qualquer coisa usando uma ou mais curvas de bézier, exceto
Sintaxe:
\draw(x0, y0)..controls(x1,y1)and(x2,y2)..(y3,x3);
(8, −0.1)
(9, −0.5)
(6, −1)
(5, −2)
Curva de Bézier (vermelho) e seus pontos de controle (azul).
\ begin {tikzpicture}
\draw[red](5,-2)..controls
(6,-1)and(8,-0.1)
..(9,-0.5);
\ en d {tikzpicture}
31
12.5 Curvas de Bézier www.number.890m.com
\ begin {tikzpicture}
% Gr ad e
\draw[opacity=0 .1, step
=.1](0,0)grid(2,8.4);
% Ei xo de si me tr ia
\draw[red](0,0) --++(0,8.4);
% Ta ca
\draw (0,0) --(1.4,0);
\draw[blue](1.4,0)..controls
(1.4,0)and(1.9,0)
..(1. 9,.2).. contro ls
(1.9,.3)and(1.6,.2)
..(1.5,.2)..controls
(1.3,.2)and(.2,.7)
..(.2,1.1) --(.2,3.5)..
controls(1,4)and(2.3,5.0)
.. (1. 5,8.3 );
\draw (1.5,8.3) --(0,8.3);
\ en d {tikzpicture}
32
www.number.890m.com
13 Coordenadas (Coordinate)
Quando tem de se lidar com uma quantidade muito grande pontos e pretende-se
fazer referência a eles uma quantidade muito grande de vezes é conveniente usar o
comando coordinate.
Sintase:
\coordinate[legenda](Nome do ponto)at(x,y);
Veja um exemplo.
\ begin {tikzpicture}
% Gr ad e
\draw[step=1cm,gray](-1,-1)
grid(3,3);
% Po nt o A
C
\coordinate(A)at(0,0);
% Po nt o B co m le ge nd a a
B esquerda
\coordinate[label=left:B](B)
at(1.5,1);
% Po nt o C co m le ge nd a a
direita
\coordinate[label=right:C](C
)at(2,2);
\ en d {tikzpicture}
Uma vez usado o coordenate é possı́vel utilizar os pontos (0,0), (1.5,1) e (2,2)
através das letras A, B e C.
\ begin {tikzpicture}
\draw[step=1c m, gray](-1,-1 )
grid(3,3);
C
\coordinate(A)at(0,0);
\coordinate[label=left:B](B)
B at(1.5,1);
\coordinate[label=right:C](C
)at(2,2);
% Re ta
\draw(A)--(B)--(C);
\ en d {tikzpicture}
33
www.number.890m.com
14 Transformações Geométricas
\ begin {tikzpicture}
% Gr ad e
\draw[opacity=0.1,step
=.1](0,0)grid(2,8.4);
% Ei xo de si me tr ia
\draw[red](0,0) --++(0,8.4);
% ta ca
\draw (0,0) --(1.4,0);
\draw[blue](1.4,0)..controls
(1.4,0)and(1.9,0)
..(1. 9,.2).. contro ls
(1.9,.3)and(1.6,.2)
..(1.5,.2)..controls
(1.3,.2)and(.2,.7)
..(.2,1.1) --(.2,3.5)..
controls(1,4)and(2.3,5.0)
..(1.5,8.3);
\draw (1.5,8.3) --(0,8.3);
\ en d {tikzpicture}
34
14.1 O Ambiente Scope www.number.890m.com
\ begin {tikzpicture}
% Gr ad e
\draw[opacity=0.1,step
=.1](0,0)grid(2,8.4);
% Ei xo de si me tr ia
\draw[red](0,0) --++(0,8.4);
% ta ca
\draw (0,0) --(1.4,0);
\draw[blue](1.4,0)..controls
(1.4,0)and(1.9,0)
..(1. 9,.2).. contro ls
(1.9,.3)and(1.6,.2)
..(1.5,.2)..controls
(1.3,.2)and(.2,.7)
..(.2,1.1) --(.2,3.5)..
controls(1,4)and(2.3,5.0)
..(1.5,8.3);
\draw (1.5,8.3) --(0,8.3);
% Refl exao
\ begin {scope}[x=-1cm]
\draw (0,0) --(1.4,0);
\draw(1.4,0)..controls
(1.4,0)and(1.9,0)
..(1.9,.2)..controls
(1.9,.3)and(1.6,.2)
..(1.5,.2)..controls
(1.3,.2)and(.2,.7)
..(.2,1.1) --(.2,3.5)..
controls(1,4)and(2.3,5.0)
..(1.5,8.3);
\draw (1.5,8.3) --(0,8.3);
\ en d {scope}
\ en d {tikzpicture}
Esse ambiente também pode ser usado para gerar translações, rotação e escala-
mento.
35
14.1 O Ambiente Scope www.number.890m.com
\ begin {tikzpicture}
% ret ang ulo neg ro
\draw[step=. 5, lightg ray
](0,0)grid(3,2);
\dra w (0,0 ) rec tan gle
(1,0.5);
% sc op e
\ begin {scope}[xshift=1cm]
% re ta ng ul o de sl oc ad o 1c m a
direita
\draw [red](0,0)rectang le
(1,0.5);
% re ta ng ul o de sl oc ad o 1c m a
di re it a e 1c m ao no rt e
\draw[yshift=1c m, blue]( 0,0)
rectangle(1,0.5);
\ en d {scope}
\ en d {tikzpicture}
O xshift desloca para todos os desenhos dentro do ambiente scope 1cm para
direita. Já o yshift desloca as figuras 1cm ao norte . Mas, como ele est´a associ-
ado apenas ao ultimo retângulo (e não ao ambiente), então apenas ele sofre suas
consequências.
\ begin {tikzpicture}
% Gr ad e
\draw[step=1c m, color=
lightgray](-1,-1)grid
(3,3);
% Po nt o
\draw[xshift=1c m, yshif t=1cm
](1,1) --(2,1) --(1.5,2)--
cycle;
\ en d {tikzpicture}
Isso mostra que tanto o xshift como o yshift podem ser usados fora do ambiente
scope.
36
14.2 Rotaç˜
ao www.number.890m.com
\ begin {tikzpicture}
% Gr ad e
\draw[step=1c m, color=
lightgray](-3,-3)grid
(3,3);
% Ei xo de si me tr ia
\draw[red](0,-3)--(0,3);
% Poli gono
\draw(2,2)--(3,2) --(2.5,3)--
cycle;
% Poli gono esp elh ado
\ begin {scope}[y=-1cm]
\draw(2,2)--(3,2) --(2.5,3)--
cycle;
\ en d {scope}
\ en d {tikzpicture}
A seguir temos uma reflexão feita em relação a uma reta horizontal e vertical
que passe pela srcem.
\
% begin
Gr ad e{tikzpicture}
\draw[step=1cm,color=
lig htg ray] (-3,- 3) gri d
(3,3);
% Ei xo s de si me tr ia
\draw[red](-3,0)--(3,0);
\draw[red](0,3)--(0,-3);
% Poli gono
\draw(2,2)--(3,2) --(2.5,3)--
cycle;
% Poli gono esp elh ado
\ begin {scope}[x=-1c m, y=-1cm
]
\draw(2,2)--(3,2) --(2.5,3)--
cycle;
\ en d {scope}
\ en d {tikzpicture}
14.2 Rotação
37
14.3 Escalamento www.number.890m.com
\ begin {tikzpicture}
% ro ta ca o de 30 gr au s
\draw[rotate=30](0,0)
rectangle(1,0.5);
% 90 grau s
\draw[rotate=90](0,0)
rectangle(1,0.5);
% 12 0 gr au s
\draw[rotate=120](0,0)
rectangle(1,0.5);
\ en d {tikzpicture}
14.3 Escalamento
\ begin {tikzpicture}
% Fig ura co m dime nso es
normais
\draw (0,0)--(1,0) --(0. 5,1)
--cycle;
\ en d {tikzpicture}
\ begin {tikzpicture}[scale=2]
% Fig ura amp lia da du as vez es
\draw(0,0)--(1,0) --(0.5,1)--
cycle;
\ en d {tikzpicture}
\ begin {tikzpicture}
% Fig ura red uzi da pe la
me ta de
\draw[scale=.5](0,0) --(1,0)
\ en d--(0.5,1)--cycle;
{tikzpicture}
\ begin {tikzpicture}
% Tri ang ulo
\draw(0,0)--(1,0) --(0.5,1)--
cycle;
% Tri ang ulo amp liad o 2 vez es
\draw[x=2c m, y=2cm](0,0)
--(1,0) --(0.5,1)--cycle ;
\ en d {tikzpicture}
38
www.number.890m.com
\ begin {tikzpicture}
% Tri ang ulo
\draw(0,0)--(1,0) --(0.5,1)--
cycle;
% Tri ang ulo amp liad o 2 vez es
\ begin {scope}[x=2c m, y=2cm]
\draw(0,0)--(1,0) --(0.5,1)--
cycle;
\ en d {scope}
\ en d {tikzpicture}
15 CLIP
\ begin {tikzpicture}[scale=2]
\draw[step=.5c m, gray
](-1.4,-1.4)grid(1.4,1.4)
;
\draw (-1.5,0) --(1.5,0);
\draw (0, -1.5) --(0,1.5);
\draw(0,0)circle(1cm);
\shadedraw[left color=gra y,
rig ht col or=gr ee n , dra w=
green!50!black](0,0)--(3
mm ,0 mm ) ar c ( 0:3 0: 3 mm ) --
cycle;
\ en d {tikzpicture}
39
www.number.890m.com
\ begin {tikzpicture}[scale=2]
\clip(-.1,-.2)rectangle
(1.1,.75);
\draw[step=.5c m, gray](-1 .4,
-1. 4)grid(1. 4, 1.4);
\dra w(-1. 5, 0)--(1 .5, 0);
\dra w(0, -1 .5 )--(0, 1.5 );
\draw(0, 0)circle(1cm);
\shadedraw[left color=gra y,
rig ht col or=gr ee n , dra w=
green!50 !black](0, 0)--(3
mm , 0 mm ) ar c ( 0: 30: 3 mm ) --
cycle;
\ en d {tikzpicture}
40
15.1 REFER ÊNCIA www.number.890m.com
TANTAU, Até Till. TIKZ and PGF: Manual for version 1.18 . 12 June
2007.
41