![Единичная окружность в сочетании с углами](https://rvso.com/image/281603/%D0%95%D0%B4%D0%B8%D0%BD%D0%B8%D1%87%D0%BD%D0%B0%D1%8F%20%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C%20%D0%B2%20%D1%81%D0%BE%D1%87%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D0%B8%20%D1%81%20%D1%83%D0%B3%D0%BB%D0%B0%D0%BC%D0%B8.png)
Я попытался сделать единичную окружность, чтобы объяснить углы, но окружность находится не на том месте в пределах определенных осей. Я использую неправильный метод? Или я не могу использовать определение оси, как в коде. Я также хочу, чтобы пересечение сегмента и окружности определяло sin и cos угла (но я думаю, что это я найду позже с помощью tkz-euclide)
Мой код:
\documentclass[11pt,a4paper]{article} % use larger type; default would be 10pt
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all} %% om allerhande objecten te gebruiken zoals gradenboog...
\usetikzlibrary{calc,intersections,through,backgrounds,snakes}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usepgfplotslibrary{statistics}
\begin{document}
\begin{tikzpicture}
\begin{axis}%
[
grid=major,
x=50mm,
y=50mm,
xmin=-1.1, xmax=1.1,
xtick={-1,0,1},
minor xtick={-1,-0.9,...,1},
xminorgrids = true,
xlabel={\tiny $x$},
axis x line=middle,
ymin=-1.1, ymax=1.1,
ytick={-1,0,1},
minor ytick={-1,-0.9,...,1},
yminorgrids = true,
ylabel={\scriptsize $y$},
axis y line=middle,
no markers,
samples=100,
]
\draw[blue] (axis cs:0,0) circle[radius=1];
\end{axis}
\tkzDefPoint(0,0){A}
\tkzDrawCircle[R](A,5cm)
\tkzDefPoint[shift={(0,0)}](0:5.2){B}
\tkzDefPoint[shift={(0,0)}](50:5.2){C}
\tkzDefPoint[shift={(0,0)}](130:5.2){D}
\tkzDrawSegments[color = red, line width = 1pt](A,B A,C)
\tkzDrawSegments[color = blue, line width = 1pt](A,B A,D)
\tkzDrawPoints(A) \tkzLabelPoints(A)
\tkzMarkAngle[fill= blue,size=2.5cm, opacity=.4](B,A,D);
\tkzMarkAngle[fill= red,size=1.5cm, opacity=.7](B,A,C);
\tkzFindAngle(B,A,C) \tkzGetAngle{angleBAC};
\FPround\angleBAC\angleBAC{0}
\tkzLabelAngle[pos = 1](B,A,C){\angleBAC$^\circ$ };
\tkzFindAngle(B,A,D) \tkzGetAngle{angleBAD};
\FPround\angleBAD\angleBAD{0}
\tkzLabelAngle[pos = 2](B,A,D){\angleBAD$^\circ$ };
\end{tikzpicture}
\end{document}
У меня также есть проблема: когда угол > 180, он выдает неправильный угол, потому что \tkzGetAngle работает только в интервале -180° +180°.
решение1
Вы как бы задаете три совершенно разных вопроса. Первый:
По умолчанию для anchor
оси pgfplots
установлено значение south west
, а положение установлено (0,0)
в системе координат tikzpicture
. Вы можете изменить положение с помощью at={(x,y)}
, но поскольку ваш круг установлен вокруг, (0,0)
это не обязательно. Вам просто нужно добавить anchor=center
параметры axis
.
Для второго:
Чтобы получить пересечение между отрезками линии и окружностью, вы можете использовать
\tkzInterLC[R](A,C)(A,5cm)\tkzGetSecondPoint{CC}
\tkzInterLC[R](A,D)(A,5cm)\tkzGetSecondPoint{DC}
CC
и DC
— пересечения. В коде ниже я нарисовал и обозначил эти точки, но не нарисовал линии, соответствующие синусу и косинусу.
\documentclass[11pt]{standalone} % use larger type; default would be 10pt
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all} %% om allerhande objecten te gebruiken zoals gradenboog...
\usetikzlibrary{calc,intersections,through,backgrounds,snakes}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usepgfplotslibrary{statistics}
\begin{document}
\begin{tikzpicture}
\begin{axis}%
[
anchor=center, % sets axis anchor to the axis origin
grid=major,
x=50mm,
y=50mm,
xmin=-1.1, xmax=1.1,
xtick={-1,0,1},
minor xtick={-1,-0.9,...,1},
xminorgrids = true,
xlabel={\tiny $x$},
axis x line=middle,
ymin=-1.1, ymax=1.1,
ytick={-1,0,1},
minor ytick={-1,-0.9,...,1},
yminorgrids = true,
ylabel={\scriptsize $y$},
axis y line=middle,
no markers,
samples=100,
]
\draw[blue] (axis cs:0,0) circle[radius=1];
\end{axis}
\tkzDefPoint(0,0){A}
\tkzDrawCircle[R](A,5cm)
\tkzDefPoint[shift={(0,0)}](0:5.2){B}
\tkzDefPoint[shift={(0,0)}](50:5.2){C}
\tkzDefPoint[shift={(0,0)}](130:5.2){D}
\tkzDrawSegments[color = red, line width = 1pt](A,B A,C)
\tkzDrawSegments[color = blue, line width = 1pt](A,B A,D)
% Finds the intersections of segments and circle
\tkzInterLC[R](A,C)(A,5cm)\tkzGetSecondPoint{CC}
\tkzInterLC[R](A,D)(A,5cm)\tkzGetSecondPoint{DC}
% draw and label points
\tkzDrawPoints(A,CC,DC) \tkzLabelPoints(A,CC,DC)
\tkzMarkAngle[fill= blue,size=2.5cm, opacity=.4](B,A,D);
\tkzMarkAngle[fill= red,size=1.5cm, opacity=.7](B,A,C);
\tkzFindAngle(B,A,C) \tkzGetAngle{angleBAC};
\FPround\angleBAC\angleBAC{0}
\tkzLabelAngle[pos = 1](B,A,C){\angleBAC$^\circ$ };
\tkzFindAngle(B,A,D) \tkzGetAngle{angleBAD};
\FPround\angleBAD\angleBAD{0}
\tkzLabelAngle[pos = 2](B,A,D){\angleBAD$^\circ$ };
\end{tikzpicture}
\end{document}