使用 \tkzInterLC (tkz-euclide) 计算直线与圆的交点顺序

使用 \tkzInterLC (tkz-euclide) 计算直线与圆的交点顺序

一条线与一个圆之间可能有两个交点,如何确定宏给出的结果的顺序\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

只是为了好玩:如果你考虑普通的 TiZ,那么答案是,你可以用密钥自己决定顺序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}

你会得到

在此处输入图片描述

然而,如果你沿着直线排序,结果可能会出乎意料, 但你可以治愈这个

相关内容