Upload
regis-da-silva
View
602
Download
8
Embed Size (px)
Citation preview
Desenhando no TikZ com Imagemde Referencia
Este topico e uma continuacao de Curvas no TikZ e e baseado no artigo tikz for image analysis deHans Meine.
A ideia e usar uma imagem como referencia para junto com o TikZ e o KTikZ redesenha-la veto-rialmente no LaTeX.
Atencao: Esta tecnica com o KTikZ so e possıvel no Windows por oferecer um previem emtempo real. Nao sei por que motivo nao funciona no Linux. Como uma alternativa para o Linuxpodemos usar o TeXMaker. Mas neste caso devemos inserir o codigo completo e compilar, ou seja:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%imagem aqui
\end{tikzpicture}
\end{document}
Vamos considerar que voce usara o Windows com o QTikZ instalado, entao faca o seguinte:
1. Abra o QTikZ;
2. Escreva o seguinte codigo:
%definicao de largura e escala da imagem
\newlength\imagewidth
\newlength\imagescale
%tamanho da imagem na tela
\pgfmathsetlength {\ imagewidth }{10cm}
%escala da imagem para o desenho vetorial
\pgfmathsetlength {\ imagescale }{\ imagewidth /100}
%ajuste da escala e direcao do eixo y
\begin{tikzpicture }[x=\ imagescale ,y=\ imagescale]
%posicione a imagem
\node[anchor=south west ,inner sep=0pt ,outer sep=0pt] at (0,0)
{\ includegraphics[width =\ imagewidth ]{nome_da_imagem }};
%aqui comeca o desenho
%grade
\draw[lightgray ,dashed ,xstep=10, ystep =10] (0,0) grid (100 ,77);
%...
\end{tikzpicture}
Regis , 2011 http://latexbr.blogspot.com/ 1
Onde \newlength define um novo valor de comprimento, \imagewidth e \imagescale sao os nomespara largura e escala da imagem, respectivamente.
\pgfmathsetlength{\imagewidth}{10cm} define o tamanho da imagem na tela e\pgfmathsetlength{\imagescale}{\imagewidth/100} e a escala para o desenho vetorial que fare-mos, no caso do QTikZ, preferi usar esta dimensao porque se usarmos um numero menor a imagemficara muito grande e dara um erro fechando o QTikZ imediatamente.
[x=\imagescale,y=\imagescale] sao as dimensoes predefinidas dentro do ambiente tikzpicture.\node[anchor=south west,inner sep=0pt,outer sep=0pt] figura inserida na parte inferior es-
querda da tela e sem distancia de separacao entre nos.\includegraphics[width=\imagewidth]{nome_da_imagem} insere a imagem. Repare que em
width=\imagewidth usamos a largura pre-definida inicialmente.
Como dito inicialmente a ideia e redesenhar uma figura vetorialmente. Podemos desenhar qualquercoisa, desde simples retangulos a figura complexas com o uso de curvas. A ideia inicial e descobriro tamanho maximo da imagem e atraves de uma grade medir as proporcoes da imagem, a partir daıcomecamos nosso desenho.
Formatos: O TikZ aceita imagens no formato: jpg, png e pdf.Nota: Ao salvar um arquivo no QTikZ ele salva com a extensao .pgf, caso voce queira inserir
a figura dentro de um arquivo tex com a opcao \input{} voce devera renomear sua figura para aextensao .tex.
1) Vamos ao primeiro desenho: baixe a imagem cubos 04.jpg, abra o QTikZ e digite o codigomencionado anteriormente. Troque o nome nome_da_imagem por cubos_04. Nao precisa digitar aextensao. Vamos salvar nosso arquivo como figcubos.
Neste caso, vamos editar a grade para verificar quais sao as medidas da imagem. E nossa gradeficou com 100,120, entao:
%definicao de largura e escala da imagem
\newlength\imagewidth
\newlength\imagescale
%tamanho da imagem na tela
\pgfmathsetlength {\ imagewidth }{10cm}
%escala da imagem para o desenho vetorial
\pgfmathsetlength {\ imagescale }{\ imagewidth /100}
%ajuste da escala e direcao do eixo y
\begin{tikzpicture }[x=\ imagescale ,y=\ imagescale ,scale =.5]
%posicione a imagem
\node[anchor=south west ,inner sep=0pt ,outer sep=0pt] at (0,0)
{\ includegraphics[width =\ imagewidth ]{cubos _04}};
%aqui comeca o desenho
%grade
\draw[lightgray ,dashed ,xstep=10, ystep =10] (0,0) grid (100 ,120);
%...
\end{tikzpicture}
Regis , 2011 http://latexbr.blogspot.com/ 2
A segunda parte do codigo e sair desenhando. Veja a resultado.
%desenho
\draw[blue] (37,5) -- (63,5) -- (63 ,31) -- (68 ,35) -- (68 ,55) -- (63 ,59) --
(91 ,59) -- (95 ,63) -- (95 ,82) -- (91 ,86) -- (63 ,86) -- (68 ,90) -- (68 ,110)
-- (58 ,118) -- (40 ,118) -- (32 ,110) -- (32 ,90) -- (37 ,86) -- (8 ,86) --
(4,82) -- (4,63) -- (8,59) -- (37 ,59) -- (32 ,55) -- (32 ,35) -- (37 ,31) --
cycle;
\draw[blue ,dashed] (37 ,31) rectangle ++(26 ,28);
\draw[blue ,dashed] (37 ,86) rectangle ++(26 ,28);
\draw[blue ,dashed] (8,59) -- ++(0 ,27);
\draw[blue ,dashed] (37 ,59) -- ++(0 ,27);
\draw[blue ,dashed] (63 ,59) -- ++(0 ,27);
\draw[blue ,dashed] (91 ,59) -- ++(0 ,27);
\end{tikzpicture}
Ao final voce pode querer reduzir a escala e outras configuracoes para que a figura fique bemajustada na sua pagina. Neste caso, usei scale=.5 e tirei os line width.
(a) cubos 04 (b) figcubos
Figura 1: cubos redesenhados.
Veja o video desenhando no latex com tikz no youtube.
Regis , 2011 http://latexbr.blogspot.com/ 3
2) Agora baixe Carbon mtb frame carbon mountain bike frame FM003 3k.jpg. Troque o nomenome_da_imagem por Carbon_mtb_frame_carbon_mountain_bike_frame_FM003_3k. Vamos salvarnosso arquivo como figbike. Neste caso, a grade ficara com 100,80.
%definicao de largura e escala da imagem
\newlength\imagewidthb
\newlength\imagescaleb
%tamanho da imagem na tela
\pgfmathsetlength {\ imagewidthb }{10cm}
%escala da imagem para o desenho vetorial
\pgfmathsetlength {\ imagescaleb }{\ imagewidthb /100}
%ajuste da escala e direcao do eixo y
\begin{tikzpicture }[x=\ imagescaleb ,y=\ imagescaleb ,scale =.7]
%posicione a imagem
\node[anchor=south west ,inner sep=0pt ,outer sep=0pt] at (0,0)
{\ includegraphics[width =\ imagewidthb ]{ Carbon_mtb_frame_carbon_mountain_bike_
frame_FM 003_3k}};
%aqui comeca o desenho
%grade
\draw[lightgray ,dashed ,xstep=10, ystep =10] (0,0) grid (100 ,80);
%desenho
\draw[fill=red ,even odd rule] (6,74) -- (.5 ,58.5) -- (6 ,56.5) -- (6.7 ,58.5) --
(12 ,54) -- (49 ,7.5) -- (57 ,7.5) to[out=-45,in =180] (62 ,6.7) --
(70 ,7.1) to[out=12,in=180] (86 ,7.8) --
(100 ,7.8) -- (95 ,17) -- (88 ,25) -- (83.7 ,32) --
(82.7 ,33.4) to[out=145,in=-45] (76.5 ,40)
to[out=140,in=-45] (71.8 ,44)
-- (68 ,48.4) to[out=130,in=-110] (68 ,53.7)
-- (64.5 ,55) to[out=250,in=-30] (61 ,53.4)
-- (11 ,70.2) -- (11.5 ,71.5) -- cycle
[rounded corners =6mm] (10 ,66) -- (50 ,15) -- (62.5 ,48.5) -- cycle
[rounded corners =4mm] (52.5 ,11) -- (97 ,10) -- (65.5 ,47) -- cycle;
\draw[fill=gray] (50.6 ,8.7) circle (2.7mm);
\end{tikzpicture}
Atencao: Voce nao pode ter duas figuras com a mesma variavel \newlength (caso voce coloqueas duas dentro de um arquivo tex), entao de um nome diferente para cada um, no caso desta segundafigura usei \imagewidthb e \imagescaleb. E no nome nao pode ter numeros.
(a) Car-bon mtb frame carbon mountain bike frame FM003 3k
(b) figbike
Figura 2: bike
Regis , 2011 http://latexbr.blogspot.com/ 4
3) Agora comeca a “brincadeira”! Vamos comecar a desenhar com curvas. Pode nao ser muitofacil e pode demorar um pouco, mas o resultado e o que importa. Baixe design5b.png. O nomesera design5b. Vamos salvar nosso arquivo como figdesign5b. E a grade ficara com 70,30. Vamosdesenhar somente a figura verde.
As vezes pode ser necessario reduzir o tamanho da imagem, como neste caso onde a imagem ficou\includegraphics[width=.7\imagewidthd].
Baixe o codigo de figdesign5b.tex.
(a) design5b (b) figdesign5b
Figura 3: Design de produtos.
4) Baixe hand-1.jpg. O nome sera hand-1. Vamos salvar nosso arquivo como fighand. E a gradesera 400,600.
Veja o video Desenhando uma mao no LaTeX com TikZ no youtube.Baixe o codigo de fighand.tex.
(a) hand-1 (b) fighand
Figura 4: Mao
Regis , 2011 http://latexbr.blogspot.com/ 5
5) Baixe audi 2.jpg. O nome sera audi_2. Vamos salvar nosso arquivo como figaudi. E a gradeficara com 90,60.
Baixe o codigo figaudi.tex.
(a) audi 2 (b) figaudi
Figura 5: Modelo de design
6) Baixe femur.jpg. O nome sera femur. Vamos salvar nosso arquivo como figfemur. E a gradeficara com 500,1500.
Veja o video Desenhando um osso no LaTeX com TikZ no youtube.Baixe o codigo figfemur.tex.
(a) femur (b) figfemur
Figura 6: Femur
Regis , 2011 http://latexbr.blogspot.com/ 6
7) Baixe Vector-Girl-Face-Design full.jpg. O nome sera Vector-Girl-Face-Design_full. Vamossalvar nosso arquivo como figVector-Girl-Face-Design. E a grade ficara com 1300,1000.
Baixe o codigo figVector-Girl-Face-Design.tex.
(a) Vector-Girl-Face-Design full (b) figVector-Girl-Face-Design
Figura 7: Moca
8) Baixe logo copa 2014 2.jpg. O nome sera logo_copa_2014_2. Vamos salvar nosso arquivo comofiglogo copa 2014. E a grade ficara com 600,700.
Veja o video Desenhando logo da copa 2014 no LaTeX com TikZ no youtube.Baixe o codigo figlogo copa 2014.tex.
(a) logo copa 2014 2 (b) figlogo copa 2014
Figura 8: Logo Copa 2014
Regis , 2011 http://latexbr.blogspot.com/ 7