Instabiles Messmakro

Instabiles Messmakro

Ich habe ein Makro erstellt \measurement, mit dem ich meinen Zeichnungen Maße hinzufügen kann. Es funktioniert gut, aber die Beschriftungen sind manchmal unbeständig. Im folgenden Beispiel werden die Maßbeschriftungen unterschiedlich gedreht, obwohl die Befehle praktisch identisch sind. Ich nehme an, es muss eine bessere Möglichkeit geben, die Beschriftung zu steuern. Hat jemand eine Idee?

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}

\tikzset{myscale/.code={\edef\myscale{#1}\tikzset{scale=#1}}}
\def\myscale{1}

\newcommand{\measure}[4]{%
\pgfmathsetlengthmacro\mylength{8pt/\myscale}
\draw[very thin] #1 -- ($#1!\mylength!-90:#2$) coordinate (a) -- ($#1!\mylength+0.4*\mylength!-90:#2$);
\draw[very thin] #2 -- ($#2!\mylength!90:#1$) coordinate (b) -- ($#2!\mylength+0.4*\mylength!90:#1$);
\draw[very thin,<->,>=stealth] (a) -- (b) node[auto,sloped,#3] {#4};
}

\begin{document}

\begin{tikzpicture}[myscale=0.12]
\begin{scope}[rotate=20]

\draw[red] (0,0) -- (0,12);
\measure{(0,0)}{(0,12)}{midway,above,rotate=20,font=\small}{red}

\draw[blue] (0,12) -- (0,24);
\measure{(0,12)}{(0,24)}{midway,above,rotate=20,font=\small}{blue}

\end{scope}
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Antwort1

Sie haben eine vertikale (bis auf die Rundung) Linie, die Sie dann um 20 Grad drehen. Abhängig von der Rundung neigt sich die Linie ein wenig nach links oder ein wenig nach rechts und der Knoten wird natürlich umgedreht.

Ich habe nicht versucht herauszufinden, was Sie zu tun versuchen oder wie man es am besten tut – vielleicht ist das eine andere Frage.

Die Antwort lautet also:Vertikal macht es instabil.

Um den Effekt zu sehen, versuchen Sie diesen Code:

\documentclass[tikz, border=1cm]{standalone}
\tikzset{
nodetest/.pic={
\coordinate (c) at (1,10); %intermediate coordinate to create rounding
\draw (1,0) -- (c) node[auto, sloped, midway] {test};
}}
\begin{document}
\begin{tikzpicture}
\foreach \pos in {0.01,0.02,...,2} 
\pic[scale=\pos] at (10*\pos,0) {nodetest};
\end{tikzpicture}
\end{document}

Skalierte Linien von (0,0) bis (1,10):

Liniendreieck mit Knotenband

Skalierte Linien von (2,0) bis (1,10):

Liniendreieck mit Knotenband

Skalierte Linien von (1,0) bis (1,10):

Liniendreieck mit instabilem Knotenband

Es ist ersichtlich, dass das dunkle Knotenband in der Mitte für vertikale Linien instabil ist.

Bearbeiten:

Ich kann nur raten, was Sie wollen. Im Folgenden sind Knoten parallel und unterhalb der Linie zu sehen, die von der ersten zur zweiten Koordinate gelesen wird. Es ist auf allen Skalen stabil.

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}
\foreach \ang in {0,20,...,340}{
\coordinate (a) at (\ang:1);
\coordinate (b) at (\ang:4);
\draw[Stealth-Stealth] (a) --node[sloped, auto, swap, allow upside down=true]{red} (b);
}
\end{tikzpicture}
\end{document}

Kreis aus Doppelpfeilen mit Beschriftung

Antwort2

Vielleicht hilft das - mittkz-euclide

Bildbeschreibung hier eingeben

MWE

\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}
    

\begin{tikzpicture}[scale=1.2]
    \tkzDefPoints{0/0/A,-4/4/B}
    \tkzDefPointWith[linear,K=0.5](A,B)
    \tkzGetPoint{C}

    \tkzDrawSegment[red, very thick](A,C)
    \tkzDrawSegment[blue,very thick](B,C)
    \tkzDrawPoints[color=black](A,B,C)
    \tkzLabelPoints[above right=3pt](A,B,C)
    \tkzDrawSegment[style=red, dashed, dim={$10$,15pt,midway,font=\scriptsize, rotate=45}](A,C) 
    \tkzDrawSegment[style=blue, dashed, dim={$10$,15pt,midway,font=\scriptsize, rotate=45}](C,B) 
\end{tikzpicture}
\end{document}

verwandte Informationen