Rótulo não digitado no local especificado

Rótulo não digitado no local especificado

Eu tenho dois círculos concêntricos centralizados no Odesenho. Especifico que o raio do círculo menor é 1. O raio do círculo maior é determinado de modo que um ângulo inscrito LMNtenha medida 20em graus, seja dividido ao meio pelo raio OMe seja tangente ao círculo menor em Se Tde modo que os ângulos SOMe TOMtenham medida 80em graus.

Minha preocupação é que o acorde MNnão esteja desenhado. Acorde LMé empate, mas não acorde MN. Aqui estão os cálculos mostrando os comprimentos dos acordes congruentes LMe 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).

Eu declaro r=1. Portanto, o raio do círculo maior é cot(10). Com os comandos a seguir, eu esperava ter angle{LMN}um ângulo inscrito no triângulo maior.

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

Isso não aconteceu LMe MNsão desenhados um pouco além do círculo em Me N. Como isso acontece?

Usei os seguintes comandos para compensar os erros do calcpacote.

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

O acorde LMé desenhado, mas Nparece estar localizado em Me, portanto, o acorde MNnão é desenhado.

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

Responder1

Você escolheu um ponto de intersecção errado, cada linha encontra o círculo no ponto desejadoeno M. Para ter certeza absoluta de qual ponto você escolhe você deve usar a sort byopção para os cruzamentos. No seu caso, usar a ordem ao longo do acorde é o mais apropriado. Por exemplo, para o primeiro conjunto de interseções você pode escrever

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

classificando as interseções por ordem chord_MLe rotulando-as por tmpe corrected_location_for_L.

Exemplo de saída

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

Responder2

Não sei o comprimento da linha, mas a localização errada do rótulo é porque você está usando a interseção errada.

Existem duas interseções entre o círculo e as cordas. Um está em M, o outro em L/ N. Quando você usa by={a}, a primeira interseção que o TikZ encontra recebe o nome {a}, se você usar by={a,b}o primeiro get ae o segundo b.

Exatamente por que você obtém a interseção correta em um caso, mas não no outro, não posso dizer com certeza, mas será devido à forma como o TikZ encontra as interseções. Por exemplo, supondo que ele olhe ao longo do círculo, começando em zero graus e seguindo no sentido anti-horário, MLa primeira interseção que encontra é em L, e a segunda em M. Pois MN, a primeira intersecção encontrada será em M.

Então, abaixo está um código completo que faz o que você procura. Também mudei algumas outras coisas, principalmente na forma como os rótulos são desenhados, mas você pode ignorar isso se preferir seu próprio método, é claro.

insira a descrição da imagem aqui

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

informação relacionada