Macro de medición inestable

Macro de medición inestable

He creado una macro \measurementque me permite agregar medidas a mis dibujos. Funciona bien, pero las etiquetas a veces son volátiles. En el siguiente ejemplo, las etiquetas de medición se giran de manera diferente aunque los comandos son prácticamente idénticos. Supongo que debe haber una mejor manera de controlar el etiquetado. ¿Alguien tiene alguna idea?

\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}

ingrese la descripción de la imagen aquí

Respuesta1

Tiene una línea vertical (excepto para redondear), que luego gira 20 grados. Dependiendo del redondeo, la línea se inclina un poco hacia la izquierda o un poco hacia la derecha y el nudo se invierte naturalmente.

No he intentado investigar qué intentas hacer o cuál es la mejor manera de hacerlo; tal vez haya otra pregunta.

Entonces la respuesta es:La vertical lo hace inestable..

Para ver el efecto, pruebe este código:

\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}

Líneas escaladas de (0,0) a (1,10):

Triángulo de líneas con banda de nodos.

Líneas escaladas de (2,0) a (1,10):

Triángulo de líneas con banda de nodos.

Líneas escaladas de (1,0) a (1,10):

Triángulo de líneas con banda inestable de nodos.

Se ve que la banda oscura de nodos en el medio es inestable para las líneas verticales.

Editar:

Sólo puedo adivinar lo que quieres. A continuación se muestran nodos paralelos y debajo de la línea leída desde la primera coordenada hasta la segunda. Es estable en todas las escalas.

\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}

Círculo de flechas dobles con etiquetas.

Respuesta2

Quizás esto ayude - contkz-euclide

ingrese la descripción de la imagen aquí

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}

información relacionada