Etiqueta no escrita en la ubicación especificada

Etiqueta no escrita en la ubicación especificada

Tengo dos círculos concéntricos centrados en Odibujado. Especifico que el radio del círculo más pequeño es 1. El radio del círculo más grande se determina de modo que un ángulo inscrito LMNmida 20grados, sea bisectado por el radio OMy sea tangente al círculo más pequeño en Sy Tde modo que los ángulos SOMy TOMmiden 80grados.

Mi preocupación es que la cuerda MNno se tensa. El acorde LMes dibujado pero no acorde MN. Aquí están los cálculos que muestran las longitudes de las cuerdas congruentes LMy MN.

`triangle{OSM}` and `triangle{OTM}` are congruent, right triangles.
Since `OM` bisects `angle{LMN}`, and the measure of `angle{LMN}` is 20 degrees,
`angle{LMO}` and `angle{NMO` both have measure `10` degrees.

r is the radius of the smaller circle.
According to the Law of Sines, |OM| = r/sin(10). By the Pythagorean Theorem,
|MS| = |MT| = (r/sin(10))\sqrt{1 - sin^{2}(10)} =(r/sin(10))cos(10) = r*cot(10).

Declaro r=1. Entonces, el radio del círculo más grande es cot(10). Con los siguientes comandos, esperaba tener angle{LMN}un ángulo inscrito en el triángulo más grande.

\coordinate (M) at ({-cot(10)},0);
\coordinate (L) at ($(M) +(10:{2*cot(10)})$);
\coordinate (N) at ($(M) +(-10:{2*cot(10)})$);

Eso no sucedió LMy MNse dibujan un poco más allá del círculo en My N. ¿Como sucedió esto?

Utilicé los siguientes comandos para compensar los errores del calcpaquete.

\draw[name path=bigger_circle] (O) circle ({cot(10)});
\path[name path=chord_LM] (M) -- (L);
\draw[name path=chord_MN] (M) -- (N);
\coordinate[name intersections={of=bigger_circle and chord_LM, by=corrected_location_for_L}];
\coordinate[name intersections={of=bigger_circle and chord_MN, by=corrected_location_for_N}];

La cuerda LMse dibuja, pero Nparece estar ubicada en M, por lo que MNno se dibuja.

\documentclass{amsart}
\usepackage{tikz}

\usetikzlibrary{calc,intersections}


\begin{document}

\begin{tikzpicture}

%Two concentric circles are drawn.
%
\coordinate (O) at (0,0);
\draw[fill] (O) circle (1.5pt);
\draw (O) circle (1);
\draw[name path=bigger_circle] (O) circle ({cot(10)});
%

%
\coordinate (S) at (100:1);
\draw[fill] (S) circle (1.5pt);
\coordinate (T) at (-100:1);
\draw[fill] (T) circle (1.5pt);
%
\coordinate (M) at ({-cot(10)},0);
%
\coordinate (L) at ($(M) +(10:{2*cot(10)})$);
\coordinate (N) at ($(M) +(-10:{2*cot(10)})$);
%
\path[name path=chord_LM] (M) -- (L);
\path[name path=chord_MN] (M) -- (N);
%
%The calc package is drawing the chords LM and MN too long. So, the intersections package is used.
%
\coordinate[name intersections={of=bigger_circle and chord_LM, by=corrected_location_for_L}];
\coordinate[name intersections={of=bigger_circle and chord_MN, by=corrected_location_for_N}];
%
\draw (M) -- (corrected_location_for_L);
\draw[green] (M) -- (corrected_location_for_N);


%The labels for the points are typeset.
\path node[anchor=west, inner sep=0, font=\footnotesize] at ($(O) +(0.15,0)$){$O$};
\path node[anchor=east, inner sep=0, font=\footnotesize] at ($(M) +(-0.15,0)$){$M$};
\path let \p1=($(L)-(M)$), \n1={atan(\y1/\x1)} in node[anchor={\n1+180}, inner sep=0, font=\footnotesize] at ($(corrected_location_for_L) +({\n1}:0.15)$){$L$};
\path let \p1=($(M)-(N)$), \n1={atan(\y1/\x1)} in node[anchor={\n1+180}, inner sep=0, font=\footnotesize] at ($(corrected_location_for_N) +({\n1}:0.15)$){$N$};
\path node[anchor={80-180}, inner sep=0, font=\footnotesize] at ($(S) +(80:0.15)$){$S$};
\path node[anchor={-80+180}, inner sep=0, font=\footnotesize] at ($(T) +(-80:0.15)$){$T$};

\draw[fill=green] (corrected_location_for_L) circle (2pt);
\draw[fill=green] (corrected_location_for_N) circle (2pt);


\end{tikzpicture}

\end{document}

Respuesta1

Ha elegido un punto de intersección incorrecto, cada línea se encuentra con el círculo en el punto deseadoyen M. Para estar absolutamente seguro de qué punto tomar debes utilizar la sort byopción para las intersecciones. En su caso, lo más apropiado es utilizar el orden a lo largo del acorde. Por ejemplo, para el primer conjunto de intersecciones puedes escribir

\coordinate[name intersections={of=bigger_circle and chord_ML,
by={tmp,corrected_location_for_L}, sort by=chord_ML}];

clasificando las intersecciones por su orden chord_MLy etiquetándolas por tmpy corrected_location_for_L.

Salida de muestra

\documentclass{amsart}

\usepackage{tikz}

\usetikzlibrary{calc,intersections}

\begin{document}

\begin{tikzpicture}

%Two concentric circles are drawn.
%
\coordinate (O) at (0,0);
\draw[fill] (O) circle (1.5pt);
\draw (O) circle (1);
\draw[name path=bigger_circle] (O) circle ({cot(10)});
%

%
\coordinate (S) at (100:1);
\draw[fill] (S) circle (1.5pt);
\coordinate (T) at (-100:1);
\draw[fill] (T) circle (1.5pt);
%
\coordinate (M) at ({-cot(10)},0);
%
\coordinate (L) at ($(M) + (10:{2*cot(10)})$);
\coordinate (N) at ($(M) + (-10:{2*cot(10)})$);
%
\path[name path=chord_ML] (M) -- (L);
\path[name path=chord_MN] (M) -- (N);
%
%The calc package is drawing the chords LM and MN too long. So, the intersections package is used.
%
\coordinate[name intersections={of=bigger_circle and chord_ML,
by={tmp,corrected_location_for_L}, sort by=chord_ML}];
\coordinate[name intersections={of=bigger_circle and chord_MN,
by={tmp,corrected_location_for_N}, sort by=chord_MN}];
%
\draw (M) -- (corrected_location_for_L);
\draw[green] (M) -- (corrected_location_for_N);

%The labels for the points are typeset.
\path node[anchor=west, inner sep=0, font=\footnotesize] at ($(O) +(0.15,0)$){$O$};
\path node[anchor=east, inner sep=0, font=\footnotesize] at ($(M) +(-0.15,0)$){$M$};
\path let \p1=($(L)-(M)$), \n1={atan(\y1/\x1)} in node[anchor={\n1+180}, inner sep=0, font=\footnotesize] at ($(corrected_location_for_L) +({\n1}:0.15)$){$L$};
\path let \p1=($(M)-(N)$), \n1={atan(\y1/\x1)} in node[anchor={\n1+180}, inner sep=0, font=\footnotesize] at ($(corrected_location_for_N) +({\n1}:0.15)$){$N$};
\path node[anchor={80-180}, inner sep=0, font=\footnotesize] at ($(S) +(80:0.15)$){$S$};
\path node[anchor={-80+180}, inner sep=0, font=\footnotesize] at ($(T) +(-80:0.15)$){$T$};

\draw[fill=green] (corrected_location_for_L) circle (2pt);
\draw[fill=green] (corrected_location_for_N) circle (2pt);

\end{tikzpicture}

\end{document}

Respuesta2

No sé la longitud de la línea, pero la ubicación incorrecta de la etiqueta se debe a que estás usando la intersección incorrecta.

Hay dos intersecciones entre el círculo y las cuerdas. Uno está en M, el otro en L/ N. Cuando usas by={a}, la primera intersección que encuentra TikZ recibe el nombre {a}, si usas by={a,b}la primera obtiene ay la segunda b.

No puedo decir exactamente por qué obtienes la intersección correcta en un caso pero no en el otro, pero se debe a cómo TikZ encuentra las intersecciones. Por ejemplo, suponiendo que mira a lo largo del círculo, comenzando en cero grados y avanzando en sentido antihorario, MLla primera intersección que encuentra está en Ly la segunda en M. Para MN, la primera intersección que encuentre estará en M.

Entonces, a continuación se muestra un código completo que hace lo que buscas. También cambié algunas otras cosas, principalmente en cómo se dibujan las etiquetas, pero puedes ignorarlo si prefieres tu propio método, por supuesto.

ingrese la descripción de la imagen aquí

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}

\begin{tikzpicture}[every label/.append style={font=\footnotesize}]
%Two concentric circles are drawn.
%
\coordinate [label=right:{$O$}] (O) at (0,0);
\draw (O) circle (1);
\draw[name path=bigger_circle] (O) circle[radius={cot(10)}];
%

%
\coordinate [label=above:{$S$}] (S) at (100:1);
\coordinate [label=below:{$T$}] (T) at (-100:1);

%
\foreach \x in {O,S,T}
  \draw[fill] (\x) circle (1.5pt);


\coordinate [label=left:{$M$}] (M) at ({-cot(10)},0);
%
\coordinate (L) at ($(M) +(10:{2*cot(10)})$);
\coordinate (N) at ($(M) +(-10:{2*cot(10)})$);
%
\path[name path=chord_LM] (M) -- (L);
\path[name path=chord_MN] (M) -- (N);
%
%The calc package is drawing the chords LM and MN too long. So, the intersections package is used.
%
\path[name intersections={of=bigger_circle and chord_LM, by={corrected_location_for_L,i}}];
\path[name intersections={of=bigger_circle and chord_MN, by={i,corrected_location_for_N}}];
%
\draw (M) -- (corrected_location_for_L);
\draw[green] (M) -- (corrected_location_for_N);

\draw[fill=green] (corrected_location_for_L) circle (2pt);
\draw[fill=green] (corrected_location_for_N) circle (2pt);

\node [font=\footnotesize] at ($(L)!-2mm!(M)$)  {$L$};
\node [font=\footnotesize] at ($(N)!-2mm!(M)$)  {$N$};
\end{tikzpicture}
\end{document}

información relacionada