TikZ:使用“交叉点”作为路径的终止坐标,但无法完全到达那里

TikZ:使用“交叉点”作为路径的终止坐标,但无法完全到达那里

我的图形遇到​​了一些问题:我希望粗箭头(标记为 epsilon+ 和 epsilon-)一直延伸到它们指向的交叉点。

如果我改变“交叉点”语句中的线长度,例如:

(intersection of 100:2--+10:100 and 30:2--+120:100)

即 100 而不是 4,箭头变得更长,但仍然没有完全到达那里......

如何解释这种行为?这是由指定线条的相对坐标引起的吗?

线是否必须实际相交才能使用“交点”指定坐标,或者它们是否根据需要延伸以执行计算?(就我而言,是的,但只是想知道)

这是我用 TikZ 制作的第一个图形,非常感谢大家的反馈。我考虑使用 GeoGebra 并导出为 TikZ 或 PDF,但我还没有完全放弃。

亲切的问候,

斯诺尔·奥尔森

生成的图像

\documentclass[•]{article}
\usepackage{tikz}
\usepackage{amsmath}

\begin{document}

\begin{tikzpicture}[scale=1]
\tikzstyle weak=[gray, very thin, text=black]
% Direction arrows
\draw[->] (0,0) -- (210:6) node[below] {To base station B};
\draw[->] (0,0) -- (280:4) node[below] {To base station A};
\draw (210:0.5) arc(210:280:0.5) node[midway, below] {$\gamma$};
% Shifted versions of LoP's
\draw[weak] (0,0) -- node[left] {$\Delta_\text{A+}$} (100:2) +(190:4) -- +(10:4) node[right] {LoP$_\text{A+}$};
\draw[weak] (0,0) -- node[below right] {$\Delta_\text{B+}$} (30:2) 
           +(120:4) -- +(300:4) node[below] {LoP$_\text{B+}$};
\draw[weak] (0,0) -- node[right, black] {$\Delta_\text{A-}$}(280:2) 
           +(190:4) -- +(10:4) node[right] {LoP$_\text{A-}$};
% Resulting error vectors
\draw[->,thick] (0,0) -- node[above left] {$\epsilon_+$}(intersection of 100:2--+10:4 and 30:2--+120:4);
\draw[->,thick] (0,0) -- node[below] {$\epsilon_-$}(intersection of 280:2--+10:4 and 30:2--+300:4);
\end{tikzpicture}

\end{document}

答案1

如果您添加了intersections库,您可以用 来命名路径name path,并使用name intersections={of=pathA and pathB}在称为 的交叉点处创建坐标intersection-N

因为所有线段都从 (0,0) 开始,所以这将是第一个交点 ( intersection-1),而第二个交点 ( intersection-2) 才是您想要的。

至于为什么你的代码不起作用,我真的不知道。但是,(intersections of A--B and C--D)PGF/TikZ 3.0 手册中根本没有提到该语法,这让我认为/猜测它已被弃用,取而代之的是库intersections。它仍然有效可能是 PGF2.1 代码的残留,可能是为了保持向后兼容性而保留的,而且它有问题。不过我只是在猜测。

最后,我认为建议使用\tikzset{stylename/.style={options}},而不是\tikzstyle{stylename}=[options]应该使用 \tikzset 还是 \tikzstyle 来定义 TikZ 样式?)。对于您的情况,您可以将样式定义添加到tikzpicture选项中,因为它只适用于那一张图片。

\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{intersections}
\begin{document}

\begin{tikzpicture}[weak/.style={gray, very thin, text=black}]
% Direction arrows
\draw[->] (0,0) -- (210:6) node[below] {To base station B};
\draw[->] (0,0) -- (280:4) node[below] {To base station A};
\draw (210:0.5) arc(210:280:0.5) node[midway, below] {$\gamma$};
% Shifted versions of LoP's
\draw[weak,name path=A1] (0,0) -- node[left] {$\Delta_\text{A+}$} (100:2) +(190:4) -- +(10:4) node[right] {LoP$_\text{A+}$};
\draw[weak,name path=B] (0,0) -- node[below right] {$\Delta_\text{B+}$} (30:2) 
           +(120:4) -- +(300:4) node[below] {LoP$_\text{B+}$};
\draw[weak,name path=A2] (0,0) -- node[right, black] {$\Delta_\text{A-}$}(280:2) 
           +(190:4) -- +(10:4) node[right] {LoP$_\text{A-}$};
% Resulting error vectors
\draw[->,thick,name intersections={of=A1 and B}] (0,0) -- node[above left] {$\epsilon_+$}(intersection-2);
\draw[->,thick,name intersections={of=A2 and B}] (0,0) -- node[below] {$\epsilon_-$}(intersection-2);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容