Desenhando no TikZ com Imagem de Referˆ encia Este t´opico opic o ´e uma continua¸ conti nua¸c˜ c˜ao ao de Curvas no TikZ e ´e baseado no artigo tikz for image analysis de Hans Meine. A id´eia eia ´e usar uma imagem como referˆencia encia para junto com o TikZ e o KTikZ redesenh´ a-la a-la vetorialmente no LaTeX. Aten¸c˜ ao: Esta t´ecnica ecnica com o KTikZ s´o ´e poss´ os s´ıvel ıvel no Windows por oferecer um previem em tempo real. real. N˜ ao sei por que motivo n˜ao ao ao funciona no Linux. Linux. Como Como uma altern alternati ativ va para para o Linux podemos usar o TeXMaker. Mas neste caso devemos inserir o c´odigo odigo completo e compilar, ou seja: \documentclass{article} \usepackage{tikz} \ begin { d o c u m e n t } \ begin { t i k z p i c t u r e } %imagem aqui \ en d { t i k z p i c t u r e } \ en d { d o c u m e n t }
Vamos considerar cons iderar que vocˆe usar´a o Windows com o QTikZ instalado, ent˜ao ao fa¸ca ca o seguinte: 1. Abra o QTikZ; 2. Escrev Escreva o seguinte seguinte c´ odigo: odigo: % d e f in in i ca c a o d e l a rg rg u ra r a e e s ca ca l a d a i m ag ag e m \newlength\imagewidth \newlength\imagescale % t a ma m a n ho ho d a i m ag ag e m n a t el el a \pgfmathsetlength{\imagewidth}{10cm} % e s ca c a l a d a i m ag ag e m p ar a r a o d e se se n ho h o v e to t o r ia ia l \ p g f m a t h s e t le le n g t h { \ i m a g e s ca ca l e } { \ i m a g e w i d th th / 1 0 0 } % a ju j u st s t e d a e sc s c al a l a e d ir i r ec e c ao a o d o e ix ix o y \ begin {tikzpicture}[x=\imagescale ,y=\imagescale] % p o s ic ic i on o n e a i m ag ag e m \ node [ a n ch c h o r = s ou ou t h w es es t , i n ne n e r s ep e p = 0 pt pt , o u t er er s ep e p = 0 p t ] a t ( 0 , 0) 0) { \ i n c l u d e g ra ra p h i c s [ w i d th th = \ i m a g e w i d t h ] { n o me me _ d a _ i m a g e m } } ; % a q ui ui c o me me c a o d e se se n ho ho %grade \ d r a w [ l i g ht ht g r ay ay , d a s he he d , x s t ep ep = 1 0 , y s t e p = 1 0 ] ( 0 , 0 ) g r i d ( 1 0 0 , 7 7) 7) ; %... \ en d { t i k z p i c t u r e }
R´egis
2011
http://latexbr.blogspot.com/
1
Onde \newlength define um novo valor de comprimento, comprimento, \imagewidth e \imagescale s˜ ao ao os nomes para largura e escala da imagem, respectivamente. \pgfmathsetlength{\imagewi \pgfmathsetlength{\imagewidth}{10cm} dth}{10cm} define o tamanho da imagem na tela e \pgfmathsetlength{\imagesc \pgfmathsetlength{\imagescale}{\imagewi ale}{\imagewidth/100} dth/100} ´ e a escala para o desenho vetorial que faremos, no caso do QTikZ, preferi usar esta dimens˜ao ao porque se usarmos um n´umero umero menor a imagem ficar´ a muito grande e dar´a um erro fechando fechando o QTikZ imediatamen imediatamente. te. [x=\imagescale,y=\imagescale] s˜ ao ao as dimens˜oes oes predefinidas dentro do ambiente ambiente tikzpicture. \node[anchor=south \node[anchor=south west,inner sep=0pt,outer sep=0pt] figura inserida na parte inferior esquerda da tela e sem distˆancia ancia de separa¸ separa¸c˜ cao ˜ao entre n´os. os. \includegraphics[width=\im \includegraphics[width=\imagewidth]{nome agewidth]{nome_da_imagem} _da_imagem} inse insere re a imag imagem em.. Repa Repare re que em width=\imagewidth usamos a largura lar gura pr´ p r´e-definida e-definid a inicialmente. ini cialmente. Como dito di to inicialmente inic ialmente a id´eia eia ´e redesenhar redese nhar uma figura vetorialmente. vetor ialmente. Podemos desenhar d esenhar qualquer qualque r coisa, desde simples retˆangulos angulos a figura complexas com o uso de curvas. A id´eia eia inicial ini cial ´e descobr des cobrir ir o tamanho m´aximo aximo da imagem e atrav´ atrav´es es de uma grade medir as propor¸c˜ oes oes da imagem, a partir pa rtir da´ da´ı come¸camos camos nosso desenho. Formatos: Formatos: O TikZ aceita aceita imagens imagens no formato: formato: jpg, jpg, png e pdf . Nota: Nota: Ao salvar salvar um arquivo arquivo no QTikZ ele salva com a extens˜aaoo .pgf , caso vocˆ e queira inserir a figura dentro de um arquivo tex com a op¸c˜ caao ˜o \input{} vocˆ voc ˆe dever de ver´´a renomear sua figura para a extens˜ aaoo .tex. .tex. 1) Vamos ao primeiro primeiro desenho: baixe a imagem cubos 04.jpg, 04.jpg, abra o QTikZ e digite o c´odigo odigo mencionado mencionado anteriorm anteriorment ente. e. Troque o nome nome_da_imagem por cubos_04. N˜ ao ao precisa digitar a extens˜ ao. Vamos salvar nosso arquivo como figcubos. ao. figcubos. Neste caso, vamos editar a grade para verificar quais s˜ao ao as medid medidas as da ima imagem gem.. E nossa nossa grade grade ficou com 100,120, ent˜ao: ao: % d e f in in i ca c a o d e l a rg rg u ra r a e e s ca ca l a d a i m ag ag e m \newlength\imagewidth \newlength\imagescale % t a ma m a n ho ho d a i m ag ag e m n a t el el a \pgfmathsetlength{\imagewidth}{10cm} % e s ca c a l a d a i m ag ag e m p ar a r a o d e se se n ho h o v e to t o r ia ia l \ p g f m a t h s e t le le n g t h { \ i m a g e s ca ca l e } { \ i m a g e w i d th th / 1 0 0 } % a ju j u st s t e d a e sc s c al a l a e d ir i r ec e c ao a o d o e ix ix o y \ begin {tikzpicture }[x=\imagescale ,y=\imagescale , scale =.5] % p o s ic ic i on o n e a i m ag ag e m \ node [ a n ch c h o r = s ou ou t h w es es t , i n ne n e r s ep e p = 0 pt pt , o u t er er s ep e p = 0 p t ] a t ( 0 , 0) 0) { \ i n c l u d e g ra ra p h i c s [ w i d th th = \ i m a g e w i d t h ] { c u b os os _ 0 4 } } ; % a q ui ui c o me me c a o d e se se n ho ho %grade \ d r a w [ l i g ht ht g r ay ay , d a s he he d , x s t ep ep = 1 0 , y s t e p = 1 0 ] ( 0 , 0 ) g r i d ( 1 0 0 , 1 20 20 ) ; %... \ en d { t i k z p i c t u r e }
R´egis
2011
http://latexbr.blogspot.com/
2
A segunda parte do c´odigo odigo ´e sair desenhando. Veja a resultado. %desenho \ d ra ra w [ bl bl ue ue ] ( 37 37 , 5) 5) - - ( 6 3 ,5 , 5 ) - - ( 6 3 ,3 , 3 1) 1) - - ( 6 8 , 35 35 ) - - ( 6 8 , 55 55 ) - - ( 6 3 , 59 59 ) - ( 91 9 1 , 59 5 9 ) - - ( 95 95 , 63 6 3 ) - - ( 95 95 , 82 8 2 ) - - ( 91 91 , 86 8 6 ) - - ( 63 63 , 86 8 6 ) - - ( 68 68 , 90 9 0 ) - - ( 68 68 , 1 10 10 ) - - ( 58 5 8 , 11 1 1 8) 8) - - ( 40 40 , 11 1 1 8) 8 ) - - ( 32 3 2 , 11 1 1 0) 0) - - ( 32 32 , 90 9 0 ) - - ( 37 3 7 , 86 8 6 ) - - ( 8 ,8 , 8 6) 6) - ( 4 ,8 , 8 2) 2) - - ( 4 ,6 , 6 3) 3) - - ( 8 ,5 , 5 9) 9) - - ( 37 37 , 59 5 9 ) - - ( 32 32 , 55 5 5 ) - - ( 32 32 , 35 3 5 ) - - ( 37 37 , 31 31 ) - cycle; \ d r a w [ b lu lu e , d a s h e d ] ( 3 7 , 3 1) 1) r e c t a ng ng l e + + ( 26 26 , 2 8 ) ; \ d r a w [ b lu lu e , d a s h e d ] ( 3 7 , 8 6) 6) r e c t a ng ng l e + + ( 26 26 , 2 8 ) ; \ d r aw aw [ b lu lu e , d a s he he d ] ( 8 , 59 59 ) - - + +( + ( 0 , 2 7) 7) ; \ d r a w [ b lu lu e , d a s h e d ] ( 3 7 , 5 9) 9) - - + + ( 0 , 2 7 ) ; \ d r a w [ b lu lu e , d a s h e d ] ( 6 3 , 5 9) 9) - - + + ( 0 , 2 7 ) ; \ d r a w [ b lu lu e , d a s h e d ] ( 9 1 , 5 9) 9) - - + + ( 0 , 2 7 ) ; \ en d { t i k z p i c t u r e }
Ao final vocˆ vocˆe pode querer querer reduzir reduzir a escala escala e outras outras configura¸ configura¸c˜ c˜oes o es para que a figura fique bem width . ajustada na sua p´agina. agina. Neste caso, usei scale=.5 e tirei os line width
(a) cubos 04
(b) figcub os
Figura 1: cubos redesenhados. Veja o video desenhando no latex com tikz no youtube.
R´egis
2011
http://latexbr.blogspot.com/
3
2) Agora baixe Carbon mtb frame carbon mountain bike frame FM003 3k.jpg. Troque o nome nome_da_imagem por Carbon_mtb_frame_carbon_mou Carbon_mtb_frame_carbon_mountain_bike_fr ntain_bike_frame_FM003_3k ame_FM003_3k . Vam amos os salv salvar ar nosso arquivo como figbike. figbike. Neste caso, a grade ficar´a com 100,80 . % d e f in in i ca c a o d e l a rg rg u ra r a e e s ca ca l a d a i m ag ag e m \newlength\imagewidthb \newlength\imagescaleb % t a ma m a n ho ho d a i m ag ag e m n a t el el a \pgfmathsetlength{\imagewidthb}{10cm} % e s ca c a l a d a i m ag ag e m p ar a r a o d e se se n ho h o v e to t o r ia ia l \ p g f m a t h s e t le le n g t h { \ i m a g e s c al al e b } { \ i m a g e w i d th th b / 1 0 0 } % a ju j u st s t e d a e sc s c al a l a e d ir i r ec e c ao a o d o e ix ix o y \ begin {tikzpicture }[x=\imagescaleb ,y=\imagescaleb , scale =.7] % p o s ic ic i on o n e a i m ag ag e m \ node [ a n ch c h o r = s ou ou t h w es es t , i n ne n e r s ep e p = 0 pt pt , o u t er er s ep e p = 0 p t ] a t ( 0 , 0) 0) { \ i n c l u d e g ra ra p h i c s [ w i d th th = \ i m a g e w i d t h b ] { C a r bo bo n _ m t b _ f r a m e _ c a r bo bo n _ m o u n t a i n _ b i ke ke _ frame_FM003_3k}}; % a q ui ui c o me me c a o d e se se n ho ho %grade \ d r a w [ l i g ht ht g r ay ay , d a s he he d , x s t ep ep = 1 0 , y s t e p = 1 0 ] ( 0 , 0 ) g r i d ( 1 0 0 , 8 0) 0) ; %desenho \ d r a w [ fill = r ed ed , e v e n o dd d d r ul u l e ] ( 6 , 74 74 ) - - ( . 5 , 58 58 . 5) 5) - - ( 6 , 56 5 6 . 5) 5) - - ( 6 .7 .7 , 5 8 .5 .5 ) - ( 12 1 2 , 5 4) 4 ) - - ( 4 9 , 7. 7. 5) 5 ) - - ( 57 5 7 , 7 . 5) 5) t o [ ou o u t = -4 - 4 5 , in i n = 1 80 8 0 ] ( 6 2 , 6. 6. 7) 7) - ( 7 0 , 7 . 1) 1) t o [ o u t = 12 12 , i n = 1 8 0 ] ( 8 6 , 7 . 8) 8) - ( 1 00 00 , 7 . 8) 8) - - ( 95 9 5 , 1 7) 7 ) - - ( 88 8 8 , 2 5) 5 ) - - ( 8 3. 3. 7 , 3 2) 2) - ( 8 2 .7 .7 , 3 3 . 4 ) t o [ o u t = 14 14 5 , i n = - 4 5 ] ( 7 6 .5 .5 , 4 0 ) t o [ o u t = 14 14 0 , i n = - 4 5 ] ( 7 1 .8 .8 , 4 4 ) - - ( 6 8 , 4 8 .4 .4 ) t o [ o u t = 13 13 0 , i n = - 1 10 10 ] ( 6 8 , 5 3 .7 .7 ) - - ( 6 4 .5 .5 , 5 5 ) t o [ o u t = 25 25 0 , i n = - 3 0 ] ( 6 1 , 5 3 .4 .4 ) - - ( 11 1 1 , 7 0 .2 .2 ) - - ( 1 1. 1. 5 , 7 1. 1. 5 ) - - c y cl cl e [ r o un u n d ed e d c o rn rn e rs r s = 6 m m ] ( 10 1 0 , 6 6) 6 ) - - ( 50 5 0 , 1 5) 5) - - ( 6 2. 2. 5 , 4 8. 8. 5 ) - - c y cl cl e [ r o un u n d ed e d c o rn rn e rs r s = 4 m m ] ( 5 2. 2. 5 , 1 1) 1) - - ( 97 9 7 , 1 0) 0 ) - - ( 6 5. 5. 5 , 4 7) 7) - - c y cl cl e ; \ d r a w [ fill = g r ay ay ] ( 5 0. 0. 6 , 8 .7 .7 ) c i rc rc l e ( 2. 2 . 7 m m ); ); \ en d { t i k z p i c t u r e }
Aten¸c˜ ao: Vocˆe n˜ao ao pode ter duas figuras com a mesma vari´avel \newlength (caso (cas o vocˆ vo cˆe colo c oloque que as duas dentro de um arquivo tex), ent˜ao ao dˆe um nome diferente para cada um, no caso desta segunda figura usei \imagewidthb e \imagescaleb. E no nome n˜ao ao pode ter n´umeros. umeros.
(a) Carbon mtb frame carbon mountain bike frame FM003 3k
(b) figbike
Figura 2: bike
R´egis
2011
http://latexbr.blogspot.com/
4
ca a “brincadei “brincadeira”! ra”! Vamos come¸ come¸car car a desenhar com curvas. Pode n˜ao ao ser muito 3) Agora come¸ca f´acil acil e pode demorar demorar um pouco, pouco, ma mass o result resultado ado ´e o que importa. importa. Baixe Baixe design5b.png. O nome ser´a design5b. Vamos salvar salvar nosso arquivo arquivo como figdesign5b. figdesign5b. E a grade ficar ficar´´a com 70,30. Vamos desenhar somente a figura verde. ` vezes pode ser necess´ario As ario reduzir o tamanho da imagem, como neste caso onde a imagem ficou \includegraphics[width=.7\ \includegraphics[width=.7\imagewidthd] imagewidthd] . Baixe o c´odigo odigo de figdesign5b.tex. figdesign5b.tex.
(a) design5b
(b) figdesign5b
Figura 3: Design de produtos. 4) Baixe hand-1.jpg. O nome ser´a hand-1 . Vamos salvar nosso arquivo como fighand. fighand. E a grade ser´a 400,600. Veja o video Desenhando uma m˜ao ao no LaTeX com TikZ no youtube. Baixe o c´odigo odigo de fighand.tex. fighand.tex.
(a) hand-1
(b) fighand
Figura 4: M˜aaoo
R´egis
2011
http://latexbr.blogspot.com/
5
salvar nosso arquivo como figaudi. 5) Baixe audi 2.jpg. O nome ser´a audi_2. Vamos salvar figaudi. E a grade ficar´ a com 90,60. Baixe o c´odigo odigo figaudi.tex. figaudi.tex.
(a) audi 2
(b) figaudi
Figura 5: Modelo de design 6) Baixe femur.jpg. O nome ser´a femur. Vamos salvar salvar nosso arquivo como figfemur. figfemur. E a grade ficar´ a com 500,1500. Veja o video Desenhando um osso no LaTeX com TikZ no youtube. Baixe o c´odigo odigo figfemur.tex. figfemur.tex.
(a) femur
(b) figfemur
Figura 6: Femur
R´egis
2011
http://latexbr.blogspot.com/
6
ector-Girl-Face-Design full.jpg. O nome ser´a Vector-Girl-Face-Design_full. Vamos 7) Baixe Vector-Girl-Face-Design salvar nosso arquivo como figVector-Girl-Face-Design figVector-Girl-Face-Design.. E a grade ficar´a com 1300,1000. Baixe o c´odigo odigo figVector-Girl-Face-Design.tex.
(a) Vector-G ector-Girlirl-F Face-De ace-Desig sign n full full
(b) figVect figVector-G or-Girlirl-F FaceaceDesign
Figura 7: Mo¸ca ca 8) Baixe logo copa 2014 2.jpg. 2.jpg. O nome ser´a logo_copa_2014_2. Vamos salvar nosso arquivo como figlogo copa 2014. 2014. E a grade ficar´a com 600,700. Veja o video Desenhando logo da copa 2014 no LaTeX com TikZ no youtube. Baixe o c´odigo odigo figlogo copa 2014.tex. 2014.tex .
(a) logo copa 2014 2
(b) figlogo copa 2014
Figura 8: Logo Copa 2014
R´egis
2011
http://latexbr.blogspot.com/
7