Comandos tkz-euclide alterando a posição de uma figura tikz - preciso que ele pare

Comandos tkz-euclide alterando a posição de uma figura tikz - preciso que ele pare

É raro eu encontrar uma solução para um problema no ChatGPT e no Google e não encontrar absolutamente nada que mencione o problema, mesmo que remotamente. Talvez eu seja péssimo em pesquisar.

No código a seguir, tenho quatro minipáginas exibindo diferentes tipos de triângulos. Usando comandos tkx-euclide nos triângulos isósceles e equiláteros (mas não escaleno). É centralizar ambos os diagramas e deslocá-los verticalmente. Não os quero centralizados, nem quero que sejam deslocados verticalmente. Então preciso de uma solução para o problema. Acho que os comandos \tkzLabelAngle estão causando o problema, mas preciso de uma maneira de usar esse comando sem problemas de posicionamento.

Obrigado

\begin{minipage}[t]{0.475\linewidth}
    \textsf{\textbf{Scalene Triangle}}
    \newline\newline
        \begin{tikzpicture}
            \draw (0,0) -- (1,2) -- (3,1.75) -- (0,0);
        \end{tikzpicture}
\end{minipage}
\begin{minipage}[t]{0.475\linewidth}
    \textsf{\textbf{Isosceles Triangle}}
    \newline\newline
        \begin{tikzpicture}
            \coordinate (A) at (0,0);
            \coordinate (B) at (4,0);
            \coordinate (C) at (2,1.5);
            \draw (0,0) -- (4,0) -- (2,1.5) -- (0,0);
            \tkzMarkSegment[color=black,pos=.5,mark=|](A,C)
            \tkzMarkSegment[color=black,pos=.5,mark=|](B,C)
            \tkzLabelAngle[pos=-0.33](C,A,B){$\circ$}
            \tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
        \end{tikzpicture}
\end{minipage}
\newline\newline
\begin{minipage}[t]{0.475\linewidth}
    \textsf{\textbf{Equilateral Triangle}}
    \newline\newline
        \begin{tikzpicture}
            \coordinate (A) at (0,0);
            \coordinate (B) at (3,0);
            \coordinate (C) at (1.5,{1.5*sqrt(3)});
            
            \draw (A) -- (B) -- (C) -- cycle;
            \tkzLabelAngle[pos=-0.33](C,A,B){$\circ$}
            \tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
            \tkzLabelAngle[pos=-0.33](B,C,A){$\circ$}
        \end{tikzpicture}
\end{minipage}
\begin{minipage}[t]{0.475\linewidth}
    \textsf{\textbf{Right Triangle}}
    \newline\newline
        \begin{tikzpicture}
            
        \end{tikzpicture}
\end{minipage}

Responder1

Melhor desenhá-los todos em uma única imagem tikz com valores diferentes scopee localizá-los com shiftvalores diferentes. Acredito que o posvalor da chave nagtiva pode causar uma caixa delimitadora maior. É melhor usar um valor positivo, se possível.

\documentclass{standalone}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\draw (0,0) -- (1,2) -- (3,1.75) -- cycle;
\node at (1.5,2) [above=0.5cm] {\textsf{\textbf{Scalene Triangle}}};
\end{scope}
\begin{scope}[xshift=6cm]
\coordinate (A) at (0,0);
\coordinate (B) at (4,0);
\coordinate (C) at (2,1.5);
\draw (0,0) -- (4,0) -- (2,1.5) -- cycle;
\tkzMarkSegment[color=black,pos=.5,mark=|](A,C)
\tkzMarkSegment[color=black,pos=.5,mark=|](B,C)
\tkzLabelAngle[pos=-0.33](C,A,B){$\circ$}
\tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
\node at (C)  [above=1cm] {\textsf{\textbf{Isosceles Triangle}}};
\end{scope}
\begin{scope}[yshift=-4cm]
\coordinate (A) at (0,0);
\coordinate (B) at (3,0);
\coordinate (C) at (1.5,{1.5*sqrt(3)});
\draw (A) -- (B) -- (C) -- cycle;
\tkzLabelAngle[pos=0.33](B,A,C){$\circ$}
\tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
\tkzLabelAngle[pos=0.33](A,C,B){$\circ$}
\node at (C) [above=0.5cm] {\textsf{\textbf{Equilateral Triangle}}};
\end{scope}
\begin{scope}[shift={(6.5cm,-4cm)}]
\coordinate (A) at (0,0);
\coordinate (B) at (3,0);
\coordinate (C) at (3,{1.5*sqrt(3)});
\draw (A) -- (B) -- (C) -- cycle;
\node at (1.5,{1.5*sqrt(3)}) [above=0.5cm] {\textsf{\textbf{Right Triangle}}};
\end{scope}
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

################################################# ###########################

Aqui está um exemplo que mostra que o posvalor negativo aumenta a caixa delimitadora. O mesmo desenho, mas o posvalor nativo, faz com que o canto inferior esquerdo e o ângulo superior tenham uma caixa delimitadora maior.

\documentclass{report}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (3,0);
\coordinate (C) at (1.5,{1.5*sqrt(3)});
\draw (A) -- (B) -- (C) -- cycle;
\tkzLabelAngle[pos=0.33](B,A,C){$\circ$}
\tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
\tkzLabelAngle[pos=0.33](A,C,B){$\circ$}
\draw (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (3,0);
\coordinate (C) at (1.5,{1.5*sqrt(3)});
\draw (A) -- (B) -- (C) -- cycle;
\tkzLabelAngle[pos=-0.33](C,A,B){$\circ$}
\tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
\tkzLabelAngle[pos=-0.33](B,C,A){$\circ$}
\draw (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}
\end{document}

insira a descrição da imagem aqui

Use minipagecom valor positivo pose \noindentpara a primeira linha. A saída correspondeu ao que você esperava? Eu uso reporta classe document como exemplo e mostro o quadro da página.

\documentclass{report}
\usepackage{showframe}
\usepackage{tkz-euclide}
\begin{document}
\noindent\begin{minipage}[t]{0.475\linewidth}
    \textsf{\textbf{Scalene Triangle}}
    \newline\newline
        \begin{tikzpicture}
            \draw (0,0) -- (1,2) -- (3,1.75) -- (0,0);
        \end{tikzpicture}
\end{minipage}
\begin{minipage}[t]{0.475\linewidth}
    \textsf{\textbf{Isosceles Triangle}}
    \newline\newline
        \begin{tikzpicture}
            \coordinate (A) at (0,0);
            \coordinate (B) at (4,0);
            \coordinate (C) at (2,1.5);
            \draw (0,0) -- (4,0) -- (2,1.5) -- (0,0);
            \tkzMarkSegment[color=black,pos=.5,mark=|](A,C)
            \tkzMarkSegment[color=black,pos=.5,mark=|](B,C)
            \tkzLabelAngle[pos=0.33](B,A,C){$\circ$}
            \tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
        \end{tikzpicture}
\end{minipage}
\newline\newline
\begin{minipage}[t]{0.475\linewidth}
    \textsf{\textbf{Equilateral Triangle}}
    \newline\newline
        \begin{tikzpicture}
            \coordinate (A) at (0,0);
            \coordinate (B) at (3,0);
            \coordinate (C) at (1.5,{1.5*sqrt(3)});
            
            \draw (A) -- (B) -- (C) -- cycle;
            \tkzLabelAngle[pos=0.33](B,A,C){$\circ$}
            \tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
            \tkzLabelAngle[pos=0.33](A,C,B){$\circ$}
        \end{tikzpicture}
\end{minipage}
\begin{minipage}[t]{0.475\linewidth}
\textsf{\textbf{Right Triangle}}
\newline\newline
\begin{tikzpicture}
            
\end{tikzpicture}
\end{minipage}
\end{document}

insira a descrição da imagem aqui

Responder2

  1. Primeira solução. Você não trabalha especificamente com tkz-euclide. Você mistura com TikZ e não é bom.

Você não usa valores negativos porque, poscomo diz Tom: você está aumentando a caixa delimitadora.

Com o clipe você pode controlar o bbox (ver 2)

    \begin{tikzpicture}
        \tkzDefPoints{0/0/A,3/0/B}
        \tkzDefTriangle[equilateral](A,B)\tkzGetPoint{C}
        \tkzDrawPolygon(A,B,C)
        \tkzLabelAngle[pos=0.33](B,A,C){$\circ$}
        \tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
        \tkzLabelAngle[pos=0.33](A,C,B){$\circ$}
    \end{tikzpicture}
  1. Você pode controlar o bbox com\tkzClipPolygon(A,B,C)

    \begin{tikzpicture}
         \coordinate (A) at (0,0);
         \coordinate (B) at (3,0);
         \coordinate (C) at (1.5,{1.5*sqrt(3)});
         \draw (A) -- (B) -- (C) -- cycle;
         \tkzClipPolygon(A,B,C)
         \tkzLabelAngle[pos=-0.33](C,A,B){$\circ$}
         \tkzLabelAngle[pos=0.33](C,B,A){$\circ$}
         \tkzLabelAngle[pos=-0.33](B,C,A){$\circ$}
     \end{tikzpicture}
    

informação relacionada