Линии не касательные, как ожидалось

Линии не касательные, как ожидалось

У меня есть две концентрические окружности с центрами в Oнарисованных. Хорды LM​​и MNбольшей окружности касаются меньшей окружности в Sи T. Меры angle{SOM}и angle{TOM}равны и имеют меру 80 градусов. Согласно теореме о степени точки, если радиус меньшей окружности равен r, |OM| = r + x, и |MS| = |MT| = y,

y² = x(x + 2r).

Итак, если r = 3/4и x = 3/2, y = (3*sqrt{2})/2. Так как triangle{LOM}конгруэнтно triangle{NOM}, OMделит пополам angle{M}.

angle{LMO} = angle{SMO} = 180 - (80 + 90) = 10,

и

angle{NMO} = angle{TMO} = 180 - (80 + 90) = 10.

Я все это закодировал на следующей TikZдиаграмме. Почему хорды не касаются меньшей окружности в точках Sи T?

\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 (3/4);
\draw (O) circle (9/4);
%
\coordinate (S) at (100:3/4);
\draw[fill] (S) circle (1.5pt);
\coordinate (T) at (-100:3/4);
\draw[fill] (T) circle (1.5pt);
%
\coordinate (M) at (-9/4,0);
%
\coordinate (L) at ($(M) +(20:{3*sqrt(2)})$);
\coordinate (N) at ($(M) +(-20:{3*sqrt(2)})$);
%
\draw (M) -- (L);
\draw (M) -- (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 node[anchor={20+180}, inner sep=0, font=\footnotesize] at ($(L) +(20:0.15)$){$L$};
\path node[anchor={-20+180}, inner sep=0, font=\footnotesize] at ($(N) +(-20: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$};

\end{tikzpicture}

\end{document}

введите описание изображения здесь

решение1

Начальное магическое число 80° для углов SOM и TOM неверно, если вы хотите иметь касательные. Угол можно легко вычислить, глядя на треугольник OSM с одним ортогональным углом в точке касания S (результат около 70,5°).

Также я бы вычислил координаты L и N как полярные координаты с началом O. Это можно сделать, снова взглянув на треугольник OLS, который также имеет ортогональный угол в точке касания S.

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

\begin{document}
\begin{tikzpicture}

\pgfmathsetmacro\BigRadius{9/4}
\pgfmathsetmacro\SmallRadius{3/4}
% \Angle is the angle part of the polar coordinate of S with origin O
% 180 - acos(\SmallRadius/\BigRadius} = 109.47102
\pgfmathsetmacro\Angle{180 - acos(1/3)}
\pgfmathsetmacro\AngleTwo{2*\Angle - 180}

% Coordinates
\path
  coordinate (O) at (0, 0)
  coordinate (S) at (\Angle:\SmallRadius)
  coordinate (T) at (-\Angle:\SmallRadius)
  coordinate (M) at (-\BigRadius, 0)
  coordinate (L) at (\AngleTwo:\BigRadius)
  coordinate (N) at (-\AngleTwo:\BigRadius)
;

% Two concentric circles and lines
\draw[line join=bevel]
  (O) circle[radius=\SmallRadius]
  (O) circle[radius=\BigRadius]
  (L) -- (M) -- (N)
;

% Points
\fill[radius=1.5pt]
  \foreach \p in {O, S, T, M, L, N} { (\p) circle[] }
;

% The labels
\path[inner sep=0pt, node font=\footnotesize]
  node[anchor=west] at ($(O) +(0.1,0)$){$O$}
  node[anchor=east] at ($(M) +(-0.15,0)$){$M$}
  node[anchor={\AngleTwo+180}] at ($(L) +(20:0.15)$){$L$}
  node[anchor={-\AngleTwo+180}] at ($(N) +(-20:0.15)$){$N$}
  node[anchor={\Angle-180}] at ($(S) +(80:0.15)$){$S$}
  node[anchor={-\Angle+180}] at ($(T) +(-80:0.15)$){$T$}
;
\end{tikzpicture}
\end{document}

Результат

Даны большие радиус и угол

Маленький радиус можно рассчитать с помощью прямоугольного треугольника MSO. Поскольку в приведенном выше примере использовались макросы, необходимо изменить только определения макросов для \Angleи :\SmallRadius

\def\Angle{100}
\pgfmathsetmacro\BigRadius{9/4}
% \Angle is the angle part of the polar coordinate of S with origin O
% Then the small radius can be calculated:
% \SmallRadius = \BigRadius * cos(180 - \Angle) = 0.3907
\pgfmathsetmacro\SmallRadius{\BigRadius * cos(180 - \Angle)}
\pgfmathsetmacro\AngleTwo{2*\Angle - 180}

Результат с углом 100

решение2

Вот отредактированная версия кода из моего поста. Я исправил ошибку в расчете, которую подсмотрел Хайко Обердиек.

\documentclass{amsart}
\usepackage{tikz}

\usetikzlibrary{calc,intersections}


\begin{document}


\begin{tikzpicture}

%Two concentric circles are drawn. $\angle{LMN}$ is an angle inscribed in the bigger circle; its measure is
%20 degrees. The chords are tangent to the smaller circle at S and T. $\triangle{OSM}$ and $\triangle{OTM}$
%are congruent, right triangles. So, OM bisects $\angle{LMN}$, and $\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*cot(10).
%
\coordinate (O) at (0,0);
\draw[fill] (O) circle (1.5pt);
\draw (O) circle (1);
\draw (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)})$);
%
\draw (M) -- (L);
\draw (M) -- (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 ($(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 ($(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$};

\end{tikzpicture}

\end{document}

введите описание изображения здесь

Связанный контент