TikZ 中 Partway 的计算逻辑

TikZ 中 Partway 的计算逻辑

PGF 手册第 66 页介绍了部分路程计算

在此处输入图片描述

在这个例子中($ (A)!.5!(B) $),.5 指的是 50% 对吧?距离点 A 有 50% 的点。在这种情况下,为什么我们需要在计算中加入点 B。我们总是可以使用第一个点进行相对定位。与包装进行比较xcolor,这是不对的(例如orange!50!black。在这里,颜色将是 50% 的橙色和 50% 的黑色。第二种颜色是强制性的。)这种比较是不对的,我想了解在计算中提供第二点的目的。

其次,D的计算也难以令人信服:

在此处输入图片描述

计算完 X 后,我们可以简单地说,将点 D 放置在 X 上方距离 6pts 的位置。它也应该等同于:

($ (X) ! {sin(60)*2} ! 90:(B) $)正确的?

请澄清并帮助我理解这个棘手的概念。

答案1

为什么需要(B)进行(X)计算?

看看这段代码

\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate [label=left:$A$]  (A) at (0,0);
\coordinate [label=right:$B$] (B) at (1.25,0.25);
\draw (A) -- (B);
\node [fill=red,inner sep=1pt,label=below:$X$] (X) at ($(A)!.5!(B)$) {}; % (1)
\coordinate[label=above:$C$] (C) at (1,2);
\draw (A) -- (C);
\node [fill=red,inner sep=1pt,label=left:$Y$] (Y) at ($(A)!.5!(C)$) {}; % (2)
\end{tikzpicture}
\end{document}

在此处输入图片描述

如果(B)是不必要的,则 (1) 和 (2) 必须具有相同的效果,即(X)(Y)必须相同。事实上,它们并不相同。因此(B)是必要的。

有关详细信息,代表标记的(B)线段的终点。(X)

对于第二个代码

看这个

\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate [label=left:$A$]  (A) at (0,0);
\coordinate [label=right:$B$] (B) at (1.25,0.25);
\draw (A) -- (B);
\node [fill=red,inner sep=1pt,label=below:$X$] (X) at ($(A)!.5!(B)$) {};
\node [fill=red,inner sep=1pt,label=above:$D$] (D) at ($(X)!{sin(60)*2}!90:(B)$) {};
\coordinate[label=right:$C$] (C) at (1,-2);
\draw (A) -- (C);
\node [fill=red,inner sep=1pt,label=left:$Y$] (Y) at ($(A)!.5!(C)$) {};
\node [fill=red,inner sep=1pt,label=below:$E$] (E) at ($(Y)!{sin(60)*2}!90:(C)$) {};
\end{tikzpicture}
\end{document}

在此处输入图片描述

再次,原因与上述相同:(B)必须是至关重要的,否则(D)必须(E)相同。

答案2

TikZ 手册教程的目的是介绍最有用的概念和library开始使用 TikZ。并且不是给出构建图形的最佳方法。

第一个问题:那么,为什么我们在计算中需要B点呢?

因为在平面几何中,有无数个点与给定点的距离相同:这些点就是圆上的点。

例如,下图中,点 M 和 N 距离圆心 2 厘米。因此需要标出第二个点 B。

截屏

第二个问题:请澄清并帮助我理解这个棘手的概念

这篇文章说明了库的使用方法calc。在这个例子中,他使用了几何关系等边三角形放置点 D。

就我个人而言,我会使用极坐标构建这个三角形,然后旋转。这里的目标不是让它尽可能简单,而是展示 TikZ 的主要概念和库。

截屏

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{calc}
\begin{document}

\begin{tikzpicture}
\draw[rotate=10] (0,0)coordinate(A)--(2,0)coordinate(B)--(60:2)coordinate(D)--cycle;
\node[left] at (A){A};
\node[right] at (B){B};
\node [above] at (D) {D};
\end{tikzpicture}
\end{document} 

使用 www.DeepL.com/Translator 翻译

答案3

在这个例子中,($ (A)!.5!(B) $).5的是 50% 对吗?

正确。这只是另一种符号而已。

距离点 A 有 50% 距离的点。那么,为什么我们在计算中需要点 B 呢?

错了。如果你从 A 到 B 走一条路径,那么 50% 表示你只沿着这条路径(从 A 点开始)移动了 50%,保持了方向。或者更简单:取向量 (ba),将其缩放 0.5 并将其添加到 a。然后你就得到了新的坐标。

如果没有第二部分,方向将不明确。也就是说,你不知道应该向上、向侧面还是向下移动。反过来,你无法唯一地识别目的地,而这并不是你在画图时想要的。

相关内容