交差点のTikzトリムライン

Nov 29 2020

「パラメトリック」直角三角形を描画する方法を考え出そうとしています。つまり、斜辺の長さと\hypo内角の1つを変更する\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}

交差点で2つの隣辺をトリミングする方法がわかりません。

その上、長さ(ここでは3単位)をハードコーディングするのは良い考えではないと思います。短すぎると交差せず、Tikzが交差点を見つけることができないので、私はそれをしました。LaTeX(またはTikz)に、交差点に到達して通過しないための正しい長さを計算させる方がよいでしょう。マニュアルとオンラインで解決策を探しましたが、本当に役立つものは見つかりませんでした。これを行う方法はありますか?

回答

5 Noname Nov 29 2020 at 01:50

を使用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の座標を解析的に計算することもできます。たとえば、このスレッドを参照してください。