使用控制点两次

使用控制点两次

我刚刚开始学习 TikZTikZ 和 PGF 软件包手册(版本 3.0.1a),在曲线路径构造子主题中我遇到了以下一段代码

\begin{tikzpicture}
\filldraw [gray] (0,0) circle [radius=2pt]
(1,1) circle [radius=2pt]
(2,1) circle [radius=2pt]
(2,0) circle [radius=2pt];
\draw (0,0) .. controls (1,1) and (2,1) .. (2,0);
\end{tikzpicture}

现在,我想问一下与上述代码相关的问题,控制点代表什么,我所能了解到的是,从曲线起点开始的切线是连接起点和第一个控制点的线。

此外,当我从上面的代码中删除命令时,为了查看会发生什么,LaTex 编辑器并没有编译并运行代码,它只是在相当长的一段时间内显示“进程已启动”消息,直到我关闭编辑器。那么,这可能是什么原因造成的呢?

(0,0) circle [radius=2pt]
(1,1) circle [radius=2pt]
(2,1) circle [radius=2pt]
(2,0) circle [radius=2pt];

答案1

不清楚哪个命令。如果您删除了

\draw (0,0) .. controls (1,1) and (2,1) .. (2,0);

应该没问题。我无法测试任何这些,因为您没有提供完整的最小示例,但它应该可以正常工作。

如果你尝试过

\draw (0,0) .. .. (2,0);

或者

\draw (0,0) .. (2,0);

那么它将不起作用。如果你说如何它失败了。哪个例如,您收到了什么错误信息?

这里的问题是,你请求的是曲线,但没有提供其形状的信息。因此 TikZ 无法构建它。

相比之下,

\draw (0,0) -- (2,0);

应该可以工作,因为端点是构建直线所需的全部信息。

如果你只是写道

(0,0) circle [radius=2pt]
(1,1) circle [radius=2pt]
(2,1) circle [radius=2pt]
(2,0) circle [radius=2pt];

作为 的唯一内容tikzpicture,那么问题在于你根本没有发出任何命令,并且 TikZ 不知道如何在任何命令上下文之外解析坐标等。

也就是说,TikZ/PGF 以上下文相关的方式解析收到的指令。这取决于它正在构建的东西的类型等。

上面的代码指定了一些坐标,但没有告诉 TikZ 期望一个坐标。因此 TikZ 不知道它们是坐标。它还指定了路径某些部分的大小和形状,但没有告诉 TikZ 它应该构造一条路径。因此 TikZ 不知道这些是路径规范的一部分。

孤立地看,这段代码毫无意义。只有当你首先告诉 TikZ 它将使用以下代码创建路径时,这段代码才有意义:

\path

或者

\draw

或者

\filldraw

ETC。

我问如何选择控制点来控制 TikZ 中的贝塞尔曲线?那里的答案可能会有所帮助。

但是,如果你尝试学习 TikZ 而不打开手册,即仅从示例中学习,那么你可能会发现这是一种痛苦的经历。如果你不明白某些东西是如何工作的,请查阅手册。文档通常都非常好。是的,令人不知所措,但作为参考非常棒。

相关内容