按照这个答案那么,对于由(1)三个点;(2)一个点和一个中心定义圆的情况,是否也可以采用类似的方式找到交点?
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,5);
\coordinate (C) at (4,0);
\coordinate (D) at (6,3);
\coordinate (E) at (4,2);
\draw (A)--(B)--(C)--cycle (D)--(E);
\end{tikzpicture}
\end{document}
(例如:(1)过A、B、C的圆与线段DE的交点;(2)过A点与中心B的圆与线段DE的交点。)
答案1
对于情况(1):基于此很好的答案,
对于情况(2):使用简单的through
库。
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections,through,calc}
\tikzset{circle through 3 points/.style n args={3}{%
insert path={let \p1=($(#1)!0.5!(#2)$),
\p2=($(#1)!0.5!(#3)$),
\p3=($(#1)!0.5!(#2)!1!-90:(#2)$),
\p4=($(#1)!0.5!(#3)!1!90:(#3)$),
\p5=(intersection of \p1--\p3 and \p2--\p4)
in },
at={(\p5)},
circle through= {(#1)}
}}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,5);
\coordinate (C) at (4,0);
\coordinate (D) at (6,3);
\coordinate (E) at (4,2);
\draw (A)--(C)node[midway,below]{(1)}--(B)--cycle;
\path [draw, name path=line] (D)--(E);
\node[name path=circ, circle through 3 points={A}{B}{C},draw=blue]{};
\path [name intersections={of=circ and line, by={K}}] ;
\node[circle,minimum size=2pt,fill=red] at(K) {};
\end{tikzpicture}
\hfill
\begin{tikzpicture}[scale=0.55]
\coordinate (A) at (0,0);
\coordinate (B) at (2,5);
\coordinate (C) at (4,0);
\coordinate (D) at (6,3);
\coordinate (E) at (4,2);
\draw (A)--(B)--(C)--cycle;
\path [draw, name path=line] (D)--(E);
\node [draw, name path=circ] at (A) [circle through=(B)] {};
\path [name intersections={of=circ and line, by={K}}] ;
\node[circle,minimum size=2pt,fill=red] at(K) {};
\end{tikzpicture}
\end{document}