一条线与一个圆之间可能有两个交点,如何确定宏给出的结果的顺序\tkzInterLC
?
这是一个简单的例子。
\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{tikzpicture}
\tkzDefPoints{2/0/A,-2/0/B,0/1/C,0/0/O}
\tkzDrawPoints(A,B,C,O)
\tkzLabelPoints(A,B,O)
\tkzLabelPoints[above right](C)
\tkzDrawLine(A,B)
\tkzDrawCircle(O,C)
\tkzInterLC(A,B)(O,C) \tkzGetPoints{P}{Q}
\tkzDrawPoints(P,Q)
\tkzLabelPoints(P,Q)
\end{tikzpicture}
\end{document}
我们如何知道 (1,0) 和 (-1,0) 中的哪一个属于 P,哪一个属于 Q?
我认为也存在类似的情况\tkzInterCC
。
答案1
只是为了好玩:如果你考虑普通的 Ti钾Z,那么答案是,你可以用密钥自己决定顺序sort by
。普通的 Ti钾您的场景的 Z 版本是
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{through,intersections}
\begin{document}
\begin{tikzpicture}
\path (2,0) coordinate (A) (-2,0) coordinate (B) (0,1)
coordinate (C) (0,0) coordinate (O);
\node[draw,name path=circ] (Circ) at (O) [circle through={(C)}]{};
\draw[name path=line] (A) -- (B);
\draw[thick,blue,->,name intersections={of=circ and line,sort by=circ}] (intersection-1) -- (intersection-2);
\end{tikzpicture}
\end{document}
箭头从第一个交叉点画到第二个交叉点。这是因为交叉点是按照圆来排序的,圆路径从 0 度开始一直延伸到 360 度。因此,如果你旋转线
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{through,intersections}
\begin{document}
\begin{tikzpicture}
\path (-45:2) coordinate (A) (135:2) coordinate (B) (0,1)
coordinate (C) (0,0) coordinate (O);
\node[draw,name path=circ] (Circ) at (O) [circle through={(C)}]{};
\draw[name path=line] (A) -- (B);
\draw[thick,blue,->,name intersections={of=circ and line,sort by=circ}] (intersection-1) -- (intersection-2);
\end{tikzpicture}
\end{document}
你会得到