Manual do pacote Tikz para Latex

Embed Size (px)

Citation preview

  • 8/10/2019 Manual do pacote Tikz para Latex.

    1/41

    .

    Desenhando no Latex com TikzDiego Oliveira | [email protected]

    www.number.890m.com

  • 8/10/2019 Manual do pacote Tikz para Latex.

    2/41

    Desenhando no Latex com Tikz

    Introdu cao: Apesar de uma extensa documenta cao estar disponvel nainternet, sobre Latex e o pacote Tikz, a maior parte esta em ingles ou setrata apenas de c opia de outras c opias, o que diculta a localiza cao dematerial realmente relevante. Assim, carecemos de trabalhos ou artigostecnicos sobre o uso da linguagem, e principalmente do pacote Tikz, emlngua portuguesa. Por isso esta apostila pretende trazer os principaiscomandos do pacote Tikz para ser usado dento do latex.

    [email protected] | c | www.number.890m.com

  • 8/10/2019 Manual do pacote Tikz para Latex.

    3/41

    Sumario1 O QUE E O TIKZ? 5

    1.1 O Qtikz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 O TikzEdt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 O Geogebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2 USANDO O TIKZ NO KILE OU NO TEXMAKER 7

    3 LINHAS 73.1 Arestas: Miter Limit . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    3.2.1 Atributos de Espessura . . . . . . . . . . . . . . . . . . . . 103.2.2 Atributo de Cor . . . . . . . . . . . . . . . . . . . . . . . . 10

    3.2.3 Atributos de Estilo . . . . . . . . . . . . . . . . . . . . . . 113.2.4 Atributos em Grupo . . . . . . . . . . . . . . . . . . . . . . 11

    4 RET ANGULOS 12

    5 CIRCUNFER ENCIAS, ELIPSES E ARCOS 145.1 SETAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    6 COORDENADA POLAR 17

    7 GRADE (Grid) 17

    8 COR 188.1 Fill e Filldraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198.2 Shade : Gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . 208.3 Opacidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    9 LEGENDAS: NODE 24

    10 REPETIC AO: FOREACH 25

    11 FUNC OES 26

    12 CURVAS NO TIKZ 2812.1 Parabolas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2812.2 Rounded Corners . . . . . . . . . . . . . . . . . . . . . . . . . . . 2812.3 Comando To . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2912.4 Smooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3012.5 Curvas de Bezier . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    13 Coordenadas (Coordinate) 33

    14 Transforma coes Geometricas 3414.1 O Ambiente Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 3414.2 Rotacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3714.3 Escalamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

  • 8/10/2019 Manual do pacote Tikz para Latex.

    4/41

    SUM ARIO www.number.890m.com

    15 CLIP 39

    15.1 REFERENCIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    4

  • 8/10/2019 Manual do pacote Tikz para Latex.

    5/41

    www.number.890m.com

    1 O QUE E O TIKZ?

    O Tikz e um pacote para latex desenvolvido por Ate Tantau para a producaode imagens vetoriais a partir de descricoes analticas. O Tikz pode ser usado emqualquer ambiente latex como, por exemplo, Kile ou Texmaker embora seu usopara estudo seja mais viavel no software Qtikz ou TikzEdt , pois oferecem umaprevia do que esta sendo desenhado em tempo real sem a necessidade de ter decompilar o documento a cada linha escrita para saber o que esta ocorrendo. OQtikz esta presente na central de programas do Ubuntu mas antes deve se ter umcompilador de latex ja instalado para poder utiliza-lo. Tanto o Qtikz como TikzEdtestao disponveis para Windows. Recomendo a instala cao do TikzEdt por ser maiscompleto.

    O download do Qtikz e TikzEdt podem ser feitos atraves do link abaixo.

    http://www.hackenberger.at/blog/ktikz-editor-for-the-tikz-language/

    1.1 O Qtikz

    Este programa nao e tao completo como seu concorrente, o TikzEdt, masganha do mesmo em questao de estabilidade. Esta disponvel tanto para Windowscomo para Linux.

    1.2 O TikzEdt

    O TikzEdt e o programa mais completo que se pode achar atualmente. Mas, in-felizmente so se encontra disponvel para Windows e nao funciona bem emulado como Wine. Tambem nao esta em sua vers ao nal e como e um projeto desenvolvidopela comunidade ainda esta em sua versao beta e n ao saira dela t ao cedo. Alemdisso, possui alguns problemas que podem acarretar em seu mau funcionamento.

    5

  • 8/10/2019 Manual do pacote Tikz para Latex.

    6/41

    1.3 O Geogebra www.number.890m.com

    1.3 O Geogebra

    Voce pode usar o Geogebra para gerar algum codigo em latex embora issoseja pouco recomendavel. Por exemplo, abra o Geogebra e desenhe um crculo deraio igual a um. Em seguida va no menu: Arquivo > Exportar > Janela deVisualiza cao como PGF/Tikz. Ira aparecer a seguinte janela.

    O campo xMin, yMin, xMax e yMax sao as coordenadas da tela do Geogebra quesera capturada. Apenas os desenhos dentro desse retangulo e que serao consideradaspara geracao dos c odigos. Experimente modica-los enquanto olha para a tela doGeogebra.

    Clicando no botao Gerar c odigo PGF/Tikz . No campo mais abaixo da janelaira ser gerado todo o c odigo latex responsavel por gerar o desenho que voce criou.

    6

  • 8/10/2019 Manual do pacote Tikz para Latex.

    7/41

    www.number.890m.com

    O Geogebra seria perfeito para gerar nossos codigos em latex, entretanto quando

    a gura e muito complexa o programa quase sempre erra na geracao do c odigo esempre escreve linhas desnecessarias que podem necessitar serem apagadas paraserem utilizadas em outros programas.

    2 USANDO O TIKZ NO KILE OU NO TEX-MAKER

    Normalmente o pacote Tikz e instalado junto com o Miktex, ou qualquer outrocompilador de latex, assim basta chamar o pacote no pre-ambulo do documentousando o

    \usepackage{tikz}

    E dentro do document usar o ambiente Tikzpicture.

    \begin{tikzpicture}

    % Toda instru c~ao fica dentro do ambiente.

    \end{tikzpicture}

    Toda instru cao que utiliza-se do pacote Tikz deve ser escrita dentro do ambientetikzpicture, caso contr ario o documento nem sera compilado.

    Se por acaso o pacote tikz nao estiver instalado em sua maquina voce podebaixa-lo. O arquivo baixado tera a extensao .sty , coloque-o no mesmo diretorio doseu arquivo .tex . Com isso ele ja estara pronto para ser usado.

    3 LINHAS

    Para desenhar a maioria das guras usamos o comando draw (desenho) ele eo comando mais basico do Tikz.

    \ begin {t ikzpic ture}\draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    A instrucao acima desenha uma linha reta com extremos em (0, 0) e (4, 0).Voce tambem pode fazer uma sequencia de segmentos que vai de ponto a ponto:

    7

  • 8/10/2019 Manual do pacote Tikz para Latex.

    8/41

    www.number.890m.com

    \ begin {t ikzpic ture}\ d ra w (0 , 0) - - ( 1 ,2 ) - - ( 2 ,3 )

    --(1,0);\ en d {t ikzpic ture}

    Por padrao essas coordenadas estao em centmetros.

    Outra forma de desenhar linhas e indicando seu ponto inicial e depois o quantocada coordenada desse ponto deve ser incrementada para que seja formado o se-gundo extremo da reta. Por exemplo, imagine um segmento com uma extremidadeem (1, 2) e outra em (2, 3). Escrevendo esse segundo ponto em funcao do primeirocaria.

    (2, 3) = (1, 2) + (1, 1)

    Assim poderamos desenhar essa linha do seguinte modo:

    \ begin {t ikzpic ture}\d r aw(1 , 2 ) - -++(1 , 1 ) ;\ en d {t ikzpic ture}

    Que seria o equivalente a escrever:

    \ begin {t ikzpic ture}\d r aw(1 , 2 ) - - (2 , 3 ) ;\ en d {t ikzpic ture}

    Esse recurso pode ser usado tambem com n umeros negativos e racionais.

    \ begin {t ikzpic ture}[ l inewidth=5pt ]

    \draw[mi ter l imit=25](6 ,0)

    --++(5, .5) --++(-5, .5);\ en d {t ikzpic ture}

    Esse ultimo exemplo mostra um resultado muito importante. O ++ realiza oincremento do ponto menos a esquerda e nao a partir do ponto inicial.

    Se voce e do tipo que nao gosta muito de escrever existe uma maneira dedesenhar varias linha de um modo mais enxuto. Por exemplo, o codigo a seguir

    8

  • 8/10/2019 Manual do pacote Tikz para Latex.

    9/41

    3.1 Arestas: Miter Limit www.number.890m.com

    \ begin {t ikzpic ture}\draw[ l ine width=1pt ](0,0) --(1,0)(0, .5) --(1, .5)

    (0 ,1) - - (1 ,1) ;\ en d {t ikzpic ture}

    e equivalente a:

    \ begin {t ikzpic ture}[ l inewidth=1pt ]

    \draw(0 ,0) - - (1 ,0) ;\draw (0, .5) --(1, .5);\draw(0 ,1) - - (1 ,1) ;\ en d {t ikzpic ture}

    3.1 Arestas: Miter Limit

    Um problema que pode surgir ao usar o line width ocorre na questao das arestasque tendem a se formar. Observe o desenho abaixo.

    \ begin {t ikzpic ture}[ l inewidth=5pt ]

    \draw(6,0) --(11, .5)--(6,1);\ en d {t ikzpic ture}

    Aqui temos dois segmentos um segmento denido pelas coordenadas (6, 0) e(11, .5) e outro com as coordenadas (11, .5) e (6, 1). Note que no ponto onde osdois segmentos se encontram formou-se duas arestas.

    3.2 Atributos

    As linhas possuem tres tipos de atributos que sao:

    Atributos de espessura; Atributo de cor; Atributos de estilo.

    9

  • 8/10/2019 Manual do pacote Tikz para Latex.

    10/41

    3.2 Atributos www.number.890m.com

    Para modicar esses atributos voce deve coloca-los entre chaves depois do co-

    mando draw e separados por vrgula caso haja mais de um.Por exemplo, a linha a seguir teve sua espessura alterada para 10 pontos atraves

    do atributo line whidth e cor modicada para vermelho atraves do atributo color .

    \ begin {t ikzpic ture}\d r aw [ l i ne w idth=10pt ,

    co lor = red] (0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    A ordem com que os atributos sao informados nao faz a menor diferenca.

    3.2.1 Atributos de Espessura

    Esse grupo de atributos sao compostos pelos comandos: ultra thin , very thin ,thin , semithick , thick e o mais importante o line whidth .

    \ begin {t ikzpic ture}\d r aw [u l tr a t hin ] (0 ,0 )

    --(4,0);\ d r aw [ve ry t h in ] (0 ,0)

    --(4,0);\draw [ th in] (0 ,0) - - (4 ,0) ;\draw [ semi thick] (0 ,0)

    --(4,0);\draw [ th ick] (0 ,0) - - (4 ,0) ;\ d r aw [ l i ne w idth=10pt ] (0 ,0)

    --(4,0);\ en d {t ikzpic ture}

    O line whidth altera a espessura da linha de acordo com a sua necessidade. Noexemplo acima usamos 10pt (10 pontos) como parametro, mas esse valor pode serdado tambem em centmetros ou espa cos.

    \ begin {t ikzpic ture}

    \d r aw [ l i ne w idth= .5cm] (0 ,1)--(4,1);

    \ d r aw [ l i ne w idth=2ex ] (0 ,0)--(4,0);

    \ en d {t ikzpic ture}

    3.2.2 Atributo de Cor

    Para alterar a cor de uma linha o processo e semelhante. Usamos o draw e entrechaves colocamos o nome da cor.

    10

  • 8/10/2019 Manual do pacote Tikz para Latex.

    11/41

    3.2 Atributos www.number.890m.com

    \ begin {t ikzpic ture}\draw [ red] (0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    Outra possibilidade seria:

    \ begin {t ikzpic ture}\d r aw [ co lo r = r ed ] (0 ,0)

    --(4,0);\ en d {t ikzpic ture}

    3.2.3 Atributos de Estilo

    Os atributos de estilo sao quatro dotted , dashed e o cap . O exemplo a seguirdeixa bem claro a funcao de cada um dos tres primeiros.

    \ begin {t ikzpic ture}%linha pont i lhada\draw[dotted](0,0) --(4,0);%l inha t race jada\draw[dashed](0 , -1) - - (4 , -1) ;%l inha com bo rda\ en d {t ikzpic ture}

    Voce pode ler sobre setas mais adiante.

    3.2.4 Atributos em Grupo

    Tanto o dashed como o dotted e o line width (e todos os outros atributos)podem ser aplicados ao ambiente tikzpicture. So que nesse caso todas as linhassofrerao inuencia do atributo.

    % d as he d a pl ic ad o a oambiente

    \ begin {t ikzpic ture}[dashed]\draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    % d ot te d a pl ic ad o a oambiente

    \ begin {t ikzpic ture}[dot ted]\draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    11

  • 8/10/2019 Manual do pacote Tikz para Latex.

    12/41

    www.number.890m.com

    % l in e w id th a pl ic ad o a oambiente

    \ begin {t ikzpic ture}[ l inew id th = . 4 cm ]

    \draw(0 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    4 RET ANGULOS

    Voce pode usar o draw para desenhar retangulo informando a coordenada decada vertice

    \ begin {t ikzpic ture}% Q ua dr a do d ef in id o p el os 4

    vert ices\ d ra w ( 0 ,0 ) - - ( 2 , 0) - -

    ( 2 ,2 ) - - ( 0 ,2 ) - - c yc le ;\ en d {t ikzpic ture}

    no entanto, isso pode ser trabalhoso.

    O Tikz possui um comando proprio para desenhar retangulos no seu documento.Para exemplicar vamos desenhar o mesmo retangulo acima.

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle(2 ,2) ;\ en d {t ikzpic ture}

    No primeiro exemplo tivemos de informar as coordenadas dos quatro vertices edepois zemos a ligacao entre eles (isso e feito com o comando cycle ).

    Ja no segundo exemplo informamos apenas a coordenada inferior esquerda e acoordenada superior direita. O que e bem mais pratico. Alem disso so de olharpara linha ja sabemos o que ela faz (desenha um retangulo), o que facilita futura

    manuten cao do seu codigo caso haja necessidade.Outra forma de desenhar o mesmo retangulo seria:

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle++(2 ,2) ;\ en d {t ikzpic ture}

    12

  • 8/10/2019 Manual do pacote Tikz para Latex.

    13/41

    www.number.890m.com

    Lembre se que o ++ incrementa a coordenada a esquerda.

    Usando um pouco de criatividade, retangulos, e tendo uma boa base em latexvoce pode criar imagens bem chamativas com facilidade.

    Um homem.

    Um gato.

    Super Mario 8-bits.

    Livro.

    13

  • 8/10/2019 Manual do pacote Tikz para Latex.

    14/41

    www.number.890m.com

    5 CIRCUNFER ENCIAS, ELIPSES E ARCOS

    Para desenhar uma circunferencia basicamente devemos informa seu centro emedida de seu raio:

    \ begin {t ikzpic ture}% Ci r cun fer enci a de r a io 0 .5

    c m e c en tr o e m ( 0 , 0)\draw(0 ,0)c i rc le (0 .5cm);% C en tr o e m ( 2 , 0) e r ai o d e

    1 r ad .\ d r aw (7 ,0.5 ) c i rc l e [ r ad iu s

    =1];\ en d {t ikzpic ture}

    ja uma elipse

    \ begin {t ikzpic ture}% E l ip se :\draw(1 ,1)e l l ipse(1 .5cm and

    0.5cm);\ en d {t ikzpic ture}

    No caso da elipse informamos o seu centro (1, 1) e depois a largura e alturaconforme indicado na imagem abaixo.

    1.5cm 0.5cm

    O comando para arcos depende de tres parametros: angulo inicial, angulo nale raio do arco.

    \ begin {t ikzpic ture}% A rc o\d r aw(6 ,0 ) a rc [ r ad iu s=3cm,

    s t ar t angl e=0 , end angl e=75];

    \ en d {t ikzpic ture}

    O arco acima tem origem em (3, 0) raio de 3cm e faz um angulo no sentidohorario que vai de 0 a 75 .

    14

  • 8/10/2019 Manual do pacote Tikz para Latex.

    15/41

    www.number.890m.com

    Para que voce visualize melhor o que esta sendo dito observe o mesmo arco

    desenhado sob uma grade marcada e com origem no ciclo trigonometrico.

    (0,0) (3,0)0

    90

    45 60

    30

    O comando arc pode ser escrito de uma forma mais sintetizada, veja:

    \ begin {t ikzpic ture}% A o i nv es d e [ r ad iu s =3 cm ,

    s t ar t angl e=0 , end angl e=75 ]

    \draw(6 ,0)arc(0 :75:3cm);

    \ en d {t ikzpic ture}

    Veja mais alguns exemplos de arcos.

    \ begin {t ikzpic ture}% Arco i nve r ti do\d r aw [ r ed ](3 ,0) a r c

    (0 : -75: -3cm);\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% A rc o n o s en ti do a nt i -

    horario\d r aw[b lue ] ( 3 , 0) a rc

    (0 :75: -3cm);\ en d {t ikzpic ture}

    15

  • 8/10/2019 Manual do pacote Tikz para Latex.

    16/41

    5.1 SETAS www.number.890m.com

    5.1 SETAS

    Setas sao inseridas tambem como atributo de estilo do draw. Veja:

    % S et a p ar a d ir ei ta\ begin {t ikzpic ture}\draw[->](3 ,0) - - (4 ,0) ;\ en d {t ikzpic ture}

    Nesse caso a seta ca voltada para o ponto mais a direita do comando draw.No caso (4, 0).

    % Se ta pa ra e sque rda\ begin {t ikzpic ture}\draw[ ] ( 3 , 0) - - (4 ,0) ;\ en d {t ikzpic ture}

    Nesse caso, cada extremidade do segmento recebe uma ponta de seta.

    Qualquer linha reta ou curva pode ser setada colocando se [-> ]. No exemploabaixo, por exemplo, temos um arco setado.

    \ begin {t ikzpic ture}

    % A rc o s et ad o\d r aw [ l i ne w idth=3pt , ->] (3 ,0 ) a rc ( 0: -75: -3cm) ;

    \ en d {t ikzpic ture}

    Outros exemplos de setas sao:

    16

  • 8/10/2019 Manual do pacote Tikz para Latex.

    17/41

    www.number.890m.com

    % S et a d up la\ begin {t ikzpic ture}\d r aw [ | ->] ( 0 , 0) - - (1 ,0) ;\draw[dot ted , >->>](0 ,1) - -

    (1,1);\ d r aw[ |< -> | ] (0 ,2 ) - - ( 1 , 2) ;\ dr aw [ dashed , o -) ] (0 ,3)

    - - ( 1 , 3) ;\ d r aw[ loose ly da shed ] ( 0 , 4)

    - - ( 1 , 4) ;\ d r aw[dense ly do tt ed ] ( 0 , 5)

    - - ( 1 , 5) ;\ en d {t ikzpic ture}

    6 COORDENADA POLARE possvel em alguns momentos usar coordenadas polares no Tikz. Veja um

    exemplo.

    \ begin {t ikzpic ture}% Coordenada Po la r\draw (0,0) --++(45:2);\ en d {t ikzpic ture}

    O exemplo acima desenha um segmento com origem em (0, 0) com comprimentode 2 cm, 45 no sentido horario.

    \ begin {t ikzpic ture}\ f i l ld raw[f i l l=yellow , d raw=

    black](0 ,0) --++(45:1)arc(45:360:1cm)--cyc le ;

    \ f i l ld raw[f i l l=whi te , d raw=black]( -0 .2 , .5 )c i rc le ( .1cm);

    \ en d {t ikzpic ture}

    7 GRADE (Grid)

    Algumas vezes e interessante que se utilize grades, para facilitar o desenho deimagens. No TikzEdt uma grade ja vem desenhada e pode ser facilmente modicadaou ate desativada, se necess ario. No Qtikz, caso se deseje usar a grade, deve seinformar ao programa por meio da forma que sera descrita.

    17

  • 8/10/2019 Manual do pacote Tikz para Latex.

    18/41

    www.number.890m.com

    \ begin {t ikzpic ture}\draw[s tep=1cm](-1 , -1)gr id

    (3,3);\ en d {t ikzpic ture}

    O step informa que cada quadro da grade tera um centmetro de largura e altura.

    \ begin {t ikzpic ture}% g rade pon ti l hada\d r aw[dash pa tt e rn=on 3p t

    o ff 3pt , s t ep=1cm](-0 .9 , -0 .9)gr id(2 .9 ,2 .9);

    \ en d {t ikzpic ture}

    Uma opcao ao atributo step sao o xstep e o ystep . Com eles podemos termaior controle sobre o tamanho dos quadros na grade.

    \ begin {t ikzpic ture}\draw[xs tep=1, ys tep

    =.5] ( -1 , -1)gr id(3 ,3) ;\ en d {t ikzpic ture}

    Nesse caso os quadros da grid terao um centmetro de largura e meio de altura.

    8 COR

    Podemos fazer imagens coloridas com o Tikz. Para isso e necessario apenas queo pacote xcolor esteja carregado no pre-ambulo. As cores que poderao ser usadassao:

    18

  • 8/10/2019 Manual do pacote Tikz para Latex.

    19/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    20/41

    8.2 Shade : Gradiente www.number.890m.com

    \ begin {t ikzpic ture}% P in ta o r et an gu l o s em

    contorno\ fill [cyan](0 ,0) rec tangle

    (2,2);\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% D es en ha o c on to r no d o

    re tangu lo e p int a s euinterior

    \ f i l ld raw[f i l l=cyan , draw=black](0 ,0) rec tangle(2 ,2)

    ;\ en d {t ikzpic ture}

    O draw desenha apenas linhas ou contornos das guras. Ja o ll e usado parapreencher o interior de guras fechadas mas, nao e capaz de desenhar seus con-tornos. O lldraw alem de preencher a forma com cor mantem uma borda de corespecicada.

    8.2 Shade : Gradiente

    Se em vez de uma cor solida, queremos um gradiente de cor, podemos usar o

    shade ao inves do ll.

    \ begin {t ikzpic ture}\shade[ le f t co lor=blue ,

    r ight co lor=red](0 ,0)rec tangle(4 ,4) ;

    \ en d {t ikzpic ture}

    \ begin {t ikzpic ture}\shade[ top co lor=blue ,

    bot tom color=red](0 ,0)rec tangle(4 ,4) ;

    \ en d {t ikzpic ture}

    20

  • 8/10/2019 Manual do pacote Tikz para Latex.

    21/41

    8.2 Shade : Gradiente www.number.890m.com

    \ begin {t ikzpic ture}\shade[ inner co lor=blue ,

    outer co lor=red](0 ,0)rec tangle(4 ,4) ;

    \ en d {t ikzpic ture}

    \ begin {t ikzpic ture}\shade[shading=bal l , ba l l

    co lo r=b lue ] ( 0 , 0) c i rc l e(2);

    \ en d {t ikzpic ture}

    O estranho e que podemos conseguir o mesmo efeito com o ll, veja.

    \ begin {t ikzpic ture}\ fill [ l e ft co lo r=b lue , r i gh t

    color=red](0 ,0) rec tangle(4,4);

    \ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% Em c im a e em b ai xo\ fill [ t op co lo r=b lue , bo tt om

    color=red](0 ,0) rec tangle(4,4);

    \ en d {t ikzpic ture}

    21

  • 8/10/2019 Manual do pacote Tikz para Latex.

    22/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    23/41

    8.3 Opacidade www.number.890m.com

    \ begin {t ikzpic ture}[opac i ty=0.5]

    % C i r cu lo s com bo rdas negra s\ f i l ld raw[f i l l=red , l ine

    width=3pt ] ( 0 :1cm) c i rc l e(12mm);

    \ f i l ld raw[f i l l=green , l inewidth=3pt ] (120:1cm)ci rc le (12mm);

    \ f i l ld raw[f i l l=blue , l inewidth=3pt ] ( -120:1cm)ci rc le (12mm);

    \ en d {t ikzpic ture}

    No exemplo acima as bordas tambem se mantem opacas fazendo com que asbordas negras quem acinzentadas. Se quisermos retirar esta opacidade das bordasacrescentamos o comando fill .

    \ begin {t ikzpic ture}[ f i l lopacity=0.5]

    \ f i l ld raw[f i l l=red , l inewidth=3pt ] (0 :1cm)ci rc le(12mm);

    \ f i l ld raw[f i l l=green , l inewidth=3pt ] (120:1cm)ci rc le(12mm);

    \ f i l ld raw[f i l l=blue , l inewidth=3pt ] ( -120:1cm)ci rc le (12mm);

    \ en d {t ikzpic ture}

    23

  • 8/10/2019 Manual do pacote Tikz para Latex.

    24/41

    www.number.890m.com

    9 LEGENDAS: NODE

    Para escrever uma legenda no Tikz procedemos do seguinte modo.

    Legenda

    Legenda

    Legenda

    LegendaLegenda

    \ begin {t ikzpic ture}% Escr i ta no rma l\draw(0 ,0)node{Legenda};% E sc ri ta e m i ta li co\draw(0 ,1)node{{\ i t Legenda

    }} ;% L et ra d e m aq ui na\draw(0 ,2)node{{\ t t Legenda

    }} ;% Tamanho g r ande\draw(0 ,3)node{{\ Huge

    Legenda}};% Negr i to\draw(0 ,4)node{{\bf Legenda

    }} ;\ en d {t ikzpic ture}

    Em cada caso o centro da palavra Legenda e colocado nas posicoes indicadas.

    Quando usamos legendas em pontos pode ser util deslocar a legenda para cimapara baixo ou mesmo para os lados. Veja os exemplo:

    D

    C

    B

    A

    \ begin {t ikzpic ture}% L eg en da a ba ix o d o p on to\ fill (0 ,3)c i rc le (0 .05cm)node

    [above]{D};% L eg en da a ci ma d o p on to\ fill (0 ,2)c i rc le (0 .05cm)node

    [be low]{C};% L eg en da a d ir ei ta d o p on to\ fill (0 ,1)c i rc le (0 .05cm)node

    [r ight ]{B};% L eg en da a e sq ue r da d o

    ponto\ fill (0 ,0)c i rc le (0 .05cm)node

    [ le f t ]{A};\ en d {t ikzpic ture}

    Tambem e possvel colorir texto ou mesmo colocar equacoes.

    24

  • 8/10/2019 Manual do pacote Tikz para Latex.

    25/41

    www.number.890m.com

    Legenda

    a 2

    8

    \ begin {t ikzpic ture}% Tex to\draw[red] (0 ,0)node{Legenda

    };% Equacao\draw(0 ,1)node{$\df rac{a

    ^2}{8}$};\ en d {t ikzpic ture}

    10 REPETIC AO: FOREACH

    O foreach e usado como uma especie de loop dentro do latex. Veja um exemplo.

    \ begin {t ikzpic ture}\ fo r each \ x i n {0 ,1 ,2 ,3 ,4}\d r aw( \x cm,1) - - ( \ x cm , -1) ;\ en d {t ikzpic ture}

    A primeira linha

    \foreach \x in {0,1,2,3,4}

    cria uma variavel x igual a zero e indica que todos os comandos escritos aposele, e que possuem a variavel x, serao repetidos 5 vezes. Na primeira vez o xsera igual a 0, depois 1 ate chegar ao 4.

    Finalmente escrevemos a linha que sofrera a repeticao.

    \draw(\x cm,1)--(\x cm,-1);

    Em teoria ela cria um segmento na vertical. Com o foreach o x varia de 0 ate

    4 desenhando nao apenas um mas 5 segmentos.Se nao fosse o foreach teramos de fazer assim:

    \ begin {t ikzpic ture}\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 {t ikzpic ture}

    25

  • 8/10/2019 Manual do pacote Tikz para Latex.

    26/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    27/41

    www.number.890m.com

    % g ra fi co d e f un ca o\ begin {t ikzpic ture}\draw[->]( -3 ,0) - - (3 ,0) ;\draw[->](0 , -1) - - (0 ,4) ;% P lo ta ge m de -2 a 0\draw[blue ,domain=-2:0]p lo t

    ( \x ,{( \x)^2}) ;% P lo ta ge m de 0 a 2\draw[blue ,domain=0:2]p lo t ( \

    x ,{ \x^2}) ;\ en d {t ikzpic ture}

    A sntese geral para as funcoes e: draw[atributo, domnio]plot ( \ x, {funcao }).As funcoes que podemos utilizar sao:

    sin(\ x, r)factorial(\ x)sqrt( \ x)pow(\ x,y) que x y .exp(\ x)ln(\ x)log10(\ x)log2(\ x)abs( \ x) valor absoluto.

    mod(\ x,y) x modulo y.round( \ x)oor(\ x) inteiro mais proximo.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)

    Voce pode ate usar rnd (sem argumento) que produz um n umero aleat orioentre 0 e 1 ou pi .

    Mais um exemplo.

    27

  • 8/10/2019 Manual do pacote Tikz para Latex.

    28/41

    www.number.890m.com

    % g ra fi co d e f un ca o\ begin {t ikzpic ture}[sca le

    =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]p lo t ( \x ,{s in( \x r )}) ;

    \ en d {t ikzpic ture}

    12 CURVAS NO TIKZ

    12.1 Parabolas

    Desenhar parabolas e muito simples.

    \ begin {t ikzpic ture}\draw(0 ,0)parabola(2 ,2) ;\ en d {t ikzpic ture}

    Acima vemos uma parabola com origem em (0, 0) e extremo em (2, 2). Poderamostambem ter usado o ++ para incremento.

    \ begin {t ikzpic ture}\draw(0 ,0)parabola++(2 ,2) ;\ en d {t ikzpic ture}

    12.2 Rounded Corners

    O rounded corners e uma propriedade de fronteira que permite um desenho maisarredondados de polgonos com arestas.

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle++(2 ,2) ;\draw[rounded corners=0.5cm

    ](2 .5 ,0) rec tangle++(2 ,2) ;\ en d {t ikzpic ture}

    28

  • 8/10/2019 Manual do pacote Tikz para Latex.

    29/41

    12.3 Comando To www.number.890m.com

    Ao aumentar o valor de contorno os vertices do quadrilatero vao cando cada

    vez mais arredondados.

    \ begin {t ikzpic ture}\draw(0 ,0) rec tangle++(1 ,1) ;\draw[rounded corners=0.1cm

    ](2 ,0) rec tangle++(1 ,1) ;\draw[rounded corners= .5cm

    ](4 ,0) rec tangle++(1 ,1) ;\ en d {t ikzpic ture}

    12.3 Comando To

    O comando To e utilizado para unir com uma linha dois pontos sendo que, existeum angulo inicial para sada da linha e um angulo nal para o ponto de destino.

    Por exemplo, a instrucao a seguir cria uma reta.

    \ begin {t ikzpic ture}% R et a\draw(0 ,0) to(2 ,3) ;\ en d {t ikzpic ture}

    Mas a instrucao a seguir desenha uma curva.

    \ begin {t ikzpic ture}\draw(3 ,0) to[out=90, in=180]

    (5 ,3) ;\ en d {t ikzpic ture}

    Nesse caso a curva parte do ponto (3, 0) fazendo um angulo de 90 graus echega ate o ponto (5, 3) fazendo um angulo de 180 .

    29

  • 8/10/2019 Manual do pacote Tikz para Latex.

    30/41

    12.4 Smooth www.number.890m.com

    Veja outros exemplos.

    \ begin {t ikzpic ture}\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 {t ikzpic ture}

    12.4 Smooth

    A funcao smoth faz com que os pontos de uma curva sejam conectados demaneira suave. Um exemplo de sua estrutura e:

    \ begin {t ikzpic ture}\draw[smooth] p lo t

    coordina tes{(0 ,0) (1 ,1)(2 ,0) (3 ,1)} ;

    \draw[ dashed ,color= gray](0,0) --(1,1)--(2,0)--(3,1);

    \ en d {t ikzpic ture}

    Tem-se tambem o atributo tension , que permite um ajuste maior na curva.Veja na proxima gura a mesma curva anterior usando o atributo.

    \ begin {t ikzpic ture}\draw[smooth , t ens ion=1]

    plo t coord ina tes{(0 ,0)(1 ,1) (2 ,0) (3 ,1)} ;

    \draw[ dashed ,color= gray](0,0) --(1,1)--(2,0)--(3,1);

    \ en d {t ikzpic ture}

    30

  • 8/10/2019 Manual do pacote Tikz para Latex.

    31/41

    12.5 Curvas de Bezier www.number.890m.com

    O smoth e uma ferramenta muito poderosa. Com ela varios esbo cos podem

    ser feitos. Inclusive a de funcoes matematicas complexas.

    Desenho vetorial feito apenas com Smooth.

    12.5 Curvas de Bezier

    E possvel desenhar qualquer coisa usando uma ou mais curvas de bezier, excetouma circunferencia. Isso e o que torna essas cuvas tao especiais.

    Sintaxe:

    \draw(x0, y0)..controls(x1,y1)and(x2,y2)..(y3,x3);

    O desenho de uma curva de bezier depende das coordenadas de quatro pontoschamados de pontos de controle .

    (5, 2)

    (6, 1)

    (8, 0.1)

    (9, 0.5)

    Curva de Bezier (vermelho) e seus pontos de controle (azul).

    \ begin {t ikzpic ture}\draw[red] (5 , -2) . . cont ro ls

    (6 , -1)and(8 , -0 .1). . (9 , -0 .5) ;

    \ en d {t ikzpic ture}

    31

  • 8/10/2019 Manual do pacote Tikz para Latex.

    32/41

  • 8/10/2019 Manual do pacote Tikz para Latex.

    33/41

    www.number.890m.com

    13 Coordenadas (Coordinate)

    Quando tem de se lidar com uma quantidade muito grande pontos e pretende-sefazer referencia a eles uma quantidade muito grande de vezes e conveniente usar ocomando coordinate.

    Sintase:

    \coordinate[legenda](Nome do ponto)at(x,y);

    Veja um exemplo.

    B

    C

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm,gray]( -1 , -1)

    gr id(3 ,3) ;% P on to A\coordina te(A)a t (0 ,0) ;% P on to B c om l eg en da a

    esquerda\coordina te[ labe l=lef t :B](B)

    a t (1 .5 ,1) ;% P on to C c om l eg en da a

    direi ta\coord ina te[ labe l=r ight :C](C)a t (2 ,2) ;

    \ en d {t ikzpic ture}

    Uma vez usado o coordenate e possvel utilizar os pontos (0,0), (1.5,1) e (2,2)atraves das letras A, B e C.

    B

    C

    \ begin {t ikzpic ture}\draw[s tep=1cm, gray] ( -1 , -1)

    gr id(3 ,3) ;\coord ina te(A)a t (0 ,0) ;\coord ina te[ labe l=lef t :B](B)

    a t (1 .5 ,1) ;\coord ina te[ labe l=r ight :C](C

    )a t (2 ,2) ;% R et a\draw(A)-- (B)- - (C) ;\ en d {t ikzpic ture}

    33

  • 8/10/2019 Manual do pacote Tikz para Latex.

    34/41

    www.number.890m.com

    14 Transforma coes Geometricas

    14.1 O Ambiente Scope

    O ambiente scope pode ser capaz de realizar as transformacoes geometricas dereexao e transla cao. Olhe por exemplo o desenho anterior.

    \ begin {t ikzpic ture}% G ra de

    \draw[opaci ty=0.1 ,s tep=.1] (0 ,0)gr id(2 ,8 .4) ;

    % E ix o d e s im et ri a\draw[red](0,0) --++(0,8.4);% t ac a\draw (0,0) --(1.4,0);\draw[blue] (1 .4 ,0) . . cont ro ls

    (1 .4 ,0)and(1 .9 ,0). . (1 .9 , .2 ) . . cont rols(1 .9 , .3 )and(1 .6 , .2). . (1 .5 , .2 ) . . cont ro ls(1 .3 , .2 )and( .2 , .7 ). . ( .2,1.1) --( .2,3.5) . .cont ro ls (1 ,4)and(2 .3 ,5 .0). . (1 .5 ,8 .3) ;

    \draw (1.5,8.3) --(0,8.3);\ en d {t ikzpic ture}

    Agora vamos usar o ambiente scope para produzir um espelhamento vertical.

    34

  • 8/10/2019 Manual do pacote Tikz para Latex.

    35/41

    14.1 O Ambiente Scope www.number.890m.com

    \ begin {t ikzpic ture}% G ra de\draw[opaci ty=0.1 ,s tep

    =.1] (0 ,0)gr id(2 ,8 .4) ;% E ix o d e s im et ri a\draw[red](0,0) --++(0,8.4);% t ac a\draw (0,0) --(1.4,0);\draw[blue] (1 .4 ,0) . . cont ro ls

    (1 .4 ,0)and(1 .9 ,0). . (1 .9 , .2 ) . . cont rols(1 .9 , .3 )and(1 .6 , .2). . (1 .5 , .2 ) . . cont ro ls(1 .3 , .2 )and( .2 , .7 ). . ( .2,1.1) --( .2,3.5) . .

    cont ro ls (1 ,4)and(2 .3 ,5 .0). . (1 .5 ,8 .3) ;\draw (1.5,8.3) --(0,8.3);% Re f lexao\ begin {scope}[x=-1cm]\draw (0,0) --(1.4,0);\draw(1 .4 ,0) . . cont ro ls

    (1 .4 ,0)and(1 .9 ,0). . (1 .9 , .2 ) . . cont ro ls(1 .9 , .3 )and(1 .6 , .2). . (1 .5 , .2 ) . . cont ro ls(1 .3 , .2 )and( .2 , .7 ). . ( .2,1.1) --( .2,3.5) . .cont ro ls (1 ,4)and(2 .3 ,5 .0). . (1 .5 ,8 .3) ;

    \draw (1.5,8.3) --(0,8.3);\ en d {scope}\ en d {t ikzpic ture}

    O ambiente scoope recebe como atributo um valor, no caso x = 1cm , essevalor ira multiplicar todos os valores da abscisa de todos os pontos dentro doambiente scope por 1. Isso provoca um espelhamento em relacao ao eixo desimetria que neste caso e uma reta vertical que passa pela origem.

    Esse ambiente tambem pode ser usado para gerar translacoes, rota cao e escala-mento.

    Vejamos um exemplo de translacao.

    35

  • 8/10/2019 Manual do pacote Tikz para Latex.

    36/41

    14.1 O Ambiente Scope www.number.890m.com

    \ begin {t ikzpic ture}% r e tangu lo negro\draw[s tep=.5 , l igh tgray

    ] (0 ,0)gr id(3 ,2) ;\ d r aw (0 ,0) r e ct ang l e

    (1 ,0 .5) ;% s co pe\ begin {scope}[xshi f t=1cm]% r et an gu lo d es lo ca do 1 cm a

    direi ta\draw [ red] (0 ,0) rec tangle

    (1 ,0 .5) ;% r et an gu lo d es lo ca do 1 cm a

    d ir ei ta e 1 cm a o n or te\draw[yshi f t=1cm, b lue] (0 ,0)

    rec tangle(1 ,0 .5) ;\ en d {scope}\ en d {t ikzpic ture}

    O xshift desloca para todos os desenhos dentro do ambiente scope 1cm paradireita. J a o yshift desloca as guras 1cm ao norte. Mas, como ele esta associ-ado apenas ao ultimo retangulo (e n ao ao ambiente), entao apenas ele sofre suasconsequencias.

    Tambem poderamos fazer o seguinte

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm, co lor=

    l ightgray] ( -1 , -1)gr id(3,3);

    % P on to\draw[xshi f t=1cm, yshi ft=1cm

    ](1,1) --(2,1) --(1.5,2)--cycle;

    \ en d {t ikzpic ture}

    Isso mostra que tanto o xshift como o yshift podem ser usados fora do ambientescope.

    O proximo exemplo mostra um espelhamento em relacao a uma reta horizontalque passa pela origem.

    36

  • 8/10/2019 Manual do pacote Tikz para Latex.

    37/41

    14.2 Rota c ao www.number.890m.com

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm, co lor=

    l ightgray] ( -3 , -3)gr id(3,3);

    % E ix o d e s im et ri a\draw[red] (0 , -3) - - (0 ,3) ;% Po l igono\draw(2,2)--(3,2) --(2.5,3)--

    cycle;% Po l igono e spe lhado\ begin {scope}[y=-1cm]\draw(2,2)--(3,2) --(2.5,3)--

    cycle;\ en d {scope}

    \ en d {t ikzpic ture}

    A seguir temos uma reexao feita em relacao a uma reta horizontal e verticalque passe pela origem.

    \ begin {t ikzpic ture}% G ra de\draw[s tep=1cm,color=

    l i gh tgr ay ] ( - 3 , -3 ) g r id(3,3);

    % E ix os d e s im et ri a

    \draw[red] ( -3 ,0) - - (3 ,0) ;\draw[red] (0 ,3) - - (0 , -3) ;% Po l igono\draw(2,2)--(3,2) --(2.5,3)--

    cycle;% Po l igono e spe lhado\ begin {scope}[x=-1cm, y=-1cm

    ]\draw(2,2)--(3,2) --(2.5,3)--

    cycle;\ en d {scope}\ en d {t ikzpic ture}

    14.2 Rota cao

    A rotacao e outra transformacao geometrica e pode ser feita atraves do atributorotate .

    37

  • 8/10/2019 Manual do pacote Tikz para Latex.

    38/41

    14.3 Escalamento www.number.890m.com

    \ begin {t ikzpic ture}% r ot ac ao d e 3 0 g ra us\draw[ro ta te=30](0 ,0)

    rec tangle(1 ,0 .5) ;% 9 0 g r a us\draw[ro ta te=90](0 ,0)

    rec tangle(1 ,0 .5) ;% 1 20 g ra us\draw[ro ta te=120](0 ,0)

    rec tangle(1 ,0 .5) ;\ en d {t ikzpic ture}

    14.3 Escalamento

    A ampliacao ou redu cao de um desenho podem ser feitas de duas maneiras:Uma delas atraves do atributo scale .

    \ begin {t ikzpic ture}% F igu ra com d imensoes

    normais\draw (0 ,0) - - (1 ,0) - - (0 .5 ,1)

    - -cyc le ;\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}[sca le=2]% F igu ra ampl i ada duas veze s\draw(0,0)--(1,0) --(0.5,1)--

    cycle;\ en d {t ikzpic ture}

    \ begin {t ikzpic ture}% F igu ra r eduz ida pel a

    me tade\draw[scale=.5](0,0) --(1,0)

    --(0.5,1)--cycle;\ en d {t ikzpic ture}

    Outra forma seria

    \ begin {t ikzpic ture}% Tr iangu lo\draw(0,0)--(1,0) --(0.5,1)--

    cycle;% Tr iangu lo ampl i ado 2 veze s\draw[x=2cm, y=2cm](0 ,0)

    --(1,0) --(0.5,1)--cycle ;\ en d {t ikzpic ture}

    38

  • 8/10/2019 Manual do pacote Tikz para Latex.

    39/41

    www.number.890m.com

    Ou poderamos ate usar o ambiente scope para isso.

    \ begin {t ikzpic ture}% Tr iangu lo\draw(0,0)--(1,0) --(0.5,1)--

    cycle;% Tr iangu lo ampl i ado 2 veze s\ begin {scope}[x=2cm, y=2cm]\draw(0,0)--(1,0) --(0.5,1)--

    cycle;\ en d {scope}\ en d {t ikzpic ture}

    15 CLIP

    A funcao clip seleciona um trecho de uma imagem. Por exemplo, considere aimagem a seguir.

    \ begin {t ikzpic ture}[sca le=2]\draw[s tep=.5cm, gray

    ] ( -1 .4 , -1 .4)gr id(1 .4 ,1 .4);

    \draw (-1.5,0) --(1.5,0);

    \draw (0, -1.5) --(0,1.5);\draw(0 ,0)c i rc le (1cm);\ shadedraw[lef t co lor=gray ,

    r i gh t co lo r=g reen , d r aw=green!50!black](0 ,0) - - (3 mm ,0 mm )ar c (0:3 0:3 mm ) --cycle;

    \ en d {t ikzpic ture}

    Usando o clip podemos criar um retangulo com vertice inferior esquerdo nacoordenada (-0.1, -0.2) e vertice superior direito em (1.1, 0.75). Com isso apenasa imagem que caria dentro desse retangulo e exibida.

    39

  • 8/10/2019 Manual do pacote Tikz para Latex.

    40/41

    www.number.890m.com

    \ begin {t ikzpic ture}[sca le=2]\c l ip( - .1 , - .2 ) rec tangle

    (1 .1 , .75) ;\draw[s tep=.5cm, gray] ( -1.4 ,

    -1 .4)gr id(1 .4 , 1 .4) ;\ d r aw( -1 .5 , 0 ) - - (1.5 , 0 ) ;\ d r aw(0 , - 1. 5) - - (0 , 1 . 5) ;\draw(0 , 0)c i rc le (1cm);\ shadedraw[lef t co lor=gray ,

    r i gh t co lo r=g reen , d r aw=green!50!black](0 , 0) - - (3 mm , 0mm )ar c (0:30:3 mm ) --cycle;

    \ en d {t ikzpic ture}

    40

  • 8/10/2019 Manual do pacote Tikz para Latex.

    41/41

    15.1 REFER ENCIA www.number.890m.com

    15.1 REFER ENCIA

    TANTAU, Ate Till. TIKZ and PGF: Manual for version 1.18 . 12 June2007.