Линии обрезки Tikz на пересечении
Я пытаюсь придумать способ рисования «параметрических» прямоугольных треугольников, то есть я изменяю длину гипотенузы \hypoи один из внутренних углов, \alfaи он должен рисовать треугольник за меня. Пока я сделал это
\documentclass[border=1mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc, angles, intersections}
\begin{document}
\begin{tikzpicture}
\def\alfa{55}
\def\hypo{3}
\draw[name path= A-C] (0,0) node[below left] (A) {A} -- (90-\alfa:3);
\draw (0,0) -- (\hypo,0) node[below right] (B) {B} -- ++ (180-\alfa:3);
\path[name path= B-C] (\hypo,0) -- ++ (180-\alfa:3);
\node [name intersections={of= A-C and B-C}, above] at (intersection-1) {C};
\end{tikzpicture}
\end{document}
Я не могу понять, как обрезать два катета на их пересечении.
Вдобавок я не думаю, что это хорошая идея - жестко кодировать их длину (здесь 3 единицы). Я сделал это, потому что если они слишком короткие, они не пересекаются, и Тикз не может найти пересечение. Было бы лучше позволить LaTeX (или Tikz) вычислить правильную длину, чтобы добраться до перекрестка, а не пройти его. Я пытался найти решение в руководстве и в Интернете, но не нашел ничего действительно полезного. есть идеи как это сделать?
Ответы
Вы можете использовать, overlayчтобы исключить вспомогательные координаты из ограничивающей рамки. Кстати, вам не нужна intersectionsбиблиотека для вычисления пересечения прямых линий.
\documentclass[border=1mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\def\alfa{55}
\def\hypo{3}
\path[overlay] (0,0) coordinate (A) ++ (90-\alfa:1) coordinate (C')
(\hypo,0) coordinate (B) ++ (180-\alfa:1) coordinate (C'')
(intersection of A--C' and B--C'') coordinate (C);
%or
%(intersection cs:first line={(A)--(C')},second line={(B)--(C'')}) coordinate (C);
\draw (A) node[below left] {$A$} -- (B) node[below right] {$B$}
-- (C) node[above]{$C$} -- cycle;
\end{tikzpicture}
\end{document}
Конечно, можно вычислить координаты C аналитически, см., Например, этот поток .