Dois problemas semelhantes de espaçamento/escalonamento/centralização de imagens Tikz

Dois problemas semelhantes de espaçamento/escalonamento/centralização de imagens Tikz

Vou começar primeiro com o que quero ter. Quero ter as duas imagens lado a lado. Quero que o ponto G fique horizontalmente entre as duas imagens e quero que a escala de ambas as imagens seja a mesma. (a distância entre GA à esquerda é a mesma distância à direita, mas as rotações destes são diferentes). Por último, quero que a imagem esquerda G seja centralizada na metade esquerda da página e a imagem direita G seja centralizada na metade direita da página.

A maneira como meu código funciona atualmente é que tenho a mesma escala entre os dois (porque ambos estão na mesma imagem tikz) e os pontos G são horizontais devido ao fato de ambos estarem em y = 0 no código.

O que não tenho é a centralização esquerda-direita. Como há mais texto na imagem da esquerda, ambas as imagens são empurradas para a direita. Além disso, isso falha porque eu especifico manualmente a distância entre o G da esquerda e da direita.

Eu ficaria satisfeito com essa distância fixa entre os dois se conseguisse obter o ponto médio dos pontos G centralizados horizontalmente na página.

Também tentei fazer subfiguras, mas elas parecem atrapalhar o dimensionamento e ainda não consigo centralizar o ponto G horizontalmente na caixa de redimensionamento da figura.

Alguém pode me ajudar a centralizar isso corretamente sem modificar muito meu código?

EDIT: Eu criei uma solução temporária, fazendo uma linha na imagem tikz que tem o ponto médio do G esquerdo e do G direito centralizado e é mais larga que as imagens. Mas isso parece uma solução alternativa grosseira. Além disso, adicionou mais preâmbulo e \begin{document}. Deve ser uma versão funcional.

EDIT2: Além disso, se você encontrar outras maneiras de melhorar a maneira como fiz as coisas, faça sugestões. Ainda sou muito novo no uso do Tikz e não conheço muitos detalhes.

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{tikz}
\usepackage{caption,subcaption}

\newcommand\centerarc[6]{
    % \centerarc{format}{center_x}{center_y}{radius}{start angle}{end angle};
    \draw[#1] ({#2+#4*cos(#5 )},{#3+#4*sin(#5 )}) arc [radius=#4, start angle =#5, end angle=#6];
}

\newcommand\centerofmass{
    \tikz[radius=0.4em] {
        \fill (0,0) -- ++(0.4em,0) arc [start angle=0,end angle=90] -- ++(0,-0.8em) arc [start angle=270, end angle=180];
        \fill [color=white] (0,0) -- ++(0,0.4em) arc [start angle=90,end angle=180] -- ++(0.8em,0) arc [start angle=0, end angle=-90];
        \draw (0,0) circle;
    }
}

\begin{document}
\begin{figure}[]
    \centering
    \resizebox{!}{5in}{
        \begin{tikzpicture}[scale=0.5,>=stealth]
            \draw[line width=8pt, cap=round] (0,0)--(0,0.9);
            \draw[line width=8pt, cap=round] (0,0.9)--(0,5.1);
            \draw[line width=8pt, cap=round] (0,5.1)--(0,9.9);
            \draw[line width=8pt, cap=round] (0,9.9)--(0,18.1);
            \filldraw[fill=white] (0,0) circle (0.2);
            \filldraw[fill=white] (0,0.9) circle (0.2);
            \filldraw[fill=white] (0,5.1) circle (0.2);
            \filldraw[fill=white] (0,9.9) circle (0.2);
            \filldraw[fill=white] (0,18.1) circle (0.2);
            \node [] at (0,14) {\Large\centerofmass};
            \node [left] at (-1,0) {Ground Contact Point $\to$ G};
            \node [left] at (-1,0.9) {COR of Ankle $\to$ A};
            \node [right] at (1,5.1) {K$\gets$ COR of Knee};
            \node [left] at (-1,9.9) {COR of Hip $\to$ H};
            \node [left] at (-1,18.1) {Crown $\to$ C};
            \centerarc{}{0}{0.9}{0.7}{-90}{90};
            \node [right] at (0.7,0.9) {$\alpha$};
            \centerarc{}{0}{5.1}{0.7}{90}{270};
            \node [left] at (-0.7,5.1) {$\theta$};
            \centerarc{}{0}{9.9}{0.7}{-90}{90};
            \node [right] at (0.7,9.9) {$\beta$};
            \draw[line width=2pt, color=red, ->] (0,17)--(0,14);
            \node[anchor=west, color=red] at (0.2,17) {$F=2mg$};
            \draw[line width=2pt, color=red, ->] (0,-3)--(0,0);
            \node[anchor=west, color=red] at (0.2,-3) {$F=2mg$};
            \node[] at (0,-5) {(a)};
            \def\slide{12}
            \draw[line width=8pt, cap=round] (0+\slide,0)--(0+\slide,0.9);
            \draw[line width=8pt, cap=round] (0+\slide,0.9)--(2.068+\slide,3.655+0.9);
            \draw[line width=8pt, cap=round] (2.065+\slide,3.655+0.9)--(0+\slide,9.9-1.012);
            \draw[dashed] (0+\slide,0.9) -- (0+\slide,9.9-1.012);
            \draw[line width=8pt, cap=round] (0+\slide,9.9-1.012)--(0+\slide,18.1-1.012);
            \filldraw[fill=white] (0+\slide,0) circle (0.2);
            \filldraw[fill=white] (0+\slide,0.9) circle (0.2);
            \filldraw[fill=white] (2.065+\slide,3.655+0.9) circle (0.2);
            \filldraw[fill=white] (0+\slide,9.9-1.012) circle (0.2);
            \filldraw[fill=white] (0+\slide,18.1-1.012) circle (0.2);
            \node [] at (0+\slide,14-1.012) {\Large\centerofmass};
            \node [left] at (-1+\slide,0) {G};
            \node [left] at (-1+\slide,0.9) {A};
            \node [right] at (1+2.065+\slide,3.655+0.9) {K};
            \node [left] at (-1+\slide,9.9-1.012) {H};
            \node [left] at (-1+\slide,18.1-1.012) {C};
            \centerarc{}{0+\slide}{0.9}{0.7}{-90}{60.5};
            \node [right] at (0.7+\slide,0.9) {$\alpha$};
            \centerarc{}{2.068+\slide}{3.655+0.9}{0.7}{115}{240};
            \node [left] at (-0.7+2.068+\slide,3.655+0.9) {$\theta$};
            \centerarc{}{0+\slide}{9.9-1.012}{0.7}{90}{-65}
            \node [right] at (0.7+\slide,9.9-1.012) {$\beta$};
            \draw[line width=2pt, color=red, ->] (0+\slide,17-1.012)--(0+\slide,14-1.012);
            \node[anchor=west, color=red] at (0.2+\slide,17-1.012) {$F=2mg$};
            \draw[line width=2pt, color=red, ->] (0+\slide,-3)--(0+\slide,0);
            \node[anchor=west, color=red] at (0.2+\slide,-3) {$F=2mg$};
            \node[] at (0+\slide,-5) {(b)};
        \end{tikzpicture}
    }
    \caption{\label{fig:stick}(a) Vertical standing position model and notation convention for lab. (b) Points $G,A,H,C$ always stay co-linear during the course of the motion.}
\end{figure}
\end{document}

Responder1

Algo util:

  • scopeambiente. Isso permite definir propriedades como scale// redseparadamente thick.
  • \paperwidth, \textwidth, e 72.27(que é a sua margem).
  • xshift, ou em geral shift={(1,2)}.
  • \useasboundingbox. Isso faz o TeX reconsiderar a caixa delimitadora (daí o tamanho) de tikzpicture. É como smashou clapmas muito mais flexível.

\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{tikz}
\usepackage{caption,subcaption}
\newcommand\centerarc[6]{
    \draw[#1]({#2+#4*cos(#5)},{#3+#4*sin(#5)})arc[radius=#4,start angle=#5,end angle=#6];}
\newcommand\centerofmass{
    \tikz[radius=0.4em]{
        \fill(0,0)--++(0.4em,0)arc[start angle=0,end angle=90]--++(0,-0.8em)arc[start angle=270,end angle=180];
        \fill[color=white](0,0)--++(0,0.4em)arc[start angle=90,end angle=180]--++(0.8em,0)arc[start angle=0,end angle=-90];\draw(0,0)circle;}}
\begin{document}
\begin{figure}
    \noindent
        \begin{tikzpicture}[>=stealth]
        \useasboundingbox(-.25\paperwidth+72.27,-5)rectangle(0,7);
        \begin{scope}[scale=0.5]
            \draw[line width=8pt, cap=round] (0,0)--(0,0.9);
            \draw[line width=8pt, cap=round] (0,0.9)--(0,5.1);
            \draw[line width=8pt, cap=round] (0,5.1)--(0,9.9);
            \draw[line width=8pt, cap=round] (0,9.9)--(0,18.1);
            \filldraw[fill=white] (0,0) circle (0.2);
            \filldraw[fill=white] (0,0.9) circle (0.2);
            \filldraw[fill=white] (0,5.1) circle (0.2);
            \filldraw[fill=white] (0,9.9) circle (0.2);
            \filldraw[fill=white] (0,18.1) circle (0.2);
            \node [] at (0,14) {\Large\centerofmass};
            \node [left] at (-1,0) {Ground Contact Point $\to$ G};
            \node [left] at (-1,0.9) {COR of Ankle $\to$ A};
            \node [right] at (1,5.1) {K$\gets$ COR of Knee};
            \node [left] at (-1,9.9) {COR of Hip $\to$ H};
            \node [left] at (-1,18.1) {Crown $\to$ C};
            \centerarc{}{0}{0.9}{0.7}{-90}{90};
            \node [right] at (0.7,0.9) {$\alpha$};
            \centerarc{}{0}{5.1}{0.7}{90}{270};
            \node [left] at (-0.7,5.1) {$\theta$};
            \centerarc{}{0}{9.9}{0.7}{-90}{90};
            \node [right] at (0.7,9.9) {$\beta$};
            \draw[line width=2pt, color=red, ->] (0,17)--(0,14);
            \node[anchor=west, color=red] at (0.2,17) {$F=2mg$};
            \draw[line width=2pt, color=red, ->] (0,-3)--(0,0);
            \node[anchor=west, color=red] at (0.2,-3) {$F=2mg$};
            \node[] at (0,-5) {(a)};
            \def\slide{12}
        \end{scope}
        \begin{scope}[scale=0.5,xshift=\paperwidth]
            \draw[line width=8pt, cap=round] (0,0)--(0,0.9);
            \draw[line width=8pt, cap=round] (0,0.9)--(2.068,3.655+0.9);
            \draw[line width=8pt, cap=round] (2.065,3.655+0.9)--(0,9.9-1.012);
            \draw[dashed] (0,0.9) -- (0,9.9-1.012);
            \draw[line width=8pt, cap=round] (0,9.9-1.012)--(0,18.1-1.012);
            \filldraw[fill=white] (0,0) circle (0.2);
            \filldraw[fill=white] (0,0.9) circle (0.2);
            \filldraw[fill=white] (2.065,3.655+0.9) circle (0.2);
            \filldraw[fill=white] (0,9.9-1.012) circle (0.2);
            \filldraw[fill=white] (0,18.1-1.012) circle (0.2);
            \node [] at (0,14-1.012) {\Large\centerofmass};
            \node [left] at (-1,0) {G};
            \node [left] at (-1,0.9) {A};
            \node [right] at (1+2.065,3.655+0.9) {K};
            \node [left] at (-1,9.9-1.012) {H};
            \node [left] at (-1,18.1-1.012) {C};
            \centerarc{}{0}{0.9}{0.7}{-90}{60.5};
            \node [right] at (0.7,0.9) {$\alpha$};
            \centerarc{}{2.068}{3.655+0.9}{0.7}{115}{240};
            \node [left] at (-0.7+2.068,3.655+0.9) {$\theta$};
            \centerarc{}{0}{9.9-1.012}{0.7}{90}{-65}
            \node [right] at (0.7,9.9-1.012) {$\beta$};
            \draw[line width=2pt, color=red, ->] (0,17-1.012)--(0,14-1.012);
            \node[anchor=west, color=red] at (0.2,17-1.012) {$F=2mg$};
            \draw[line width=2pt, color=red, ->] (0,-3)--(0,0);
            \node[anchor=west, color=red] at (0.2,-3) {$F=2mg$};
            \node[] at (0,-5) {(b)};
        \end{scope}
        \end{tikzpicture}
    \caption{\label{fig:stick}(a) Vertical standing position model and notation convention for lab. (b) Points $G,A,H,C$ always stay co-linear during the course of the motion.}
\end{figure}
\end{document}

informação relacionada