在里面爱好使用 Tikz 库中的曲线,我可以或多或少地像在 Metapost 中定义曲线一样定义曲线,如下所示:
\usepackage{tikz}
\usetikzlibrary{hobby}
\begin{document}
\begin{tikzpicture}
\draw (1.21,2.4598) coordinate (z1);
\draw (0.4820,2.1281) coordinate (z2);
\draw (-0.8821,0.9569) coordinate (z3);
\draw (-2.6476,-0.2303) coordinate (z4);
\draw (-2.4570,-1.1470) coordinate (z5);
\draw (-4.33,-1.77) coordinate (z6);
\draw (z1) to [ curve through ={(z2)..(z3)..(z4)..(z5)}] (z6);
\end{tikzpicture}
\end{document}
这是可行的,但是为什么下面的命令不起作用呢?
\draw (z1) to [ curve through ={(z2)..(z3)--(z4)..(z5)}] (z6);
按照业余爱好图书馆手册应该可以。
更糟糕的是,显然我可以使用以下命令来完成这项工作:
\usepackage{tikz}
\usetikzlibrary{hobby}
\begin{document}
\begin{tikzpicture}[use Hobby shortcut ]
\draw (1.21,2.4598) coordinate (z1);
\draw (0.4820,2.1281) coordinate (z2);
\draw (-0.8821,0.9569) coordinate (z3);
\draw (-2.6476,-0.2303) coordinate (z4);
\draw (-2.4570,-1.1470) coordinate (z5);
\draw (-4.33,-1.77) coordinate (z6);
\draw (z1)..(z2)..(z3)--(z4)..(z5)..(z6);
\end{tikzpicture}
\end{document}
但这并不能解决我的问题,我正在尝试使用程序 TikzEdt 来加速我的个人项目制作字体,并且 TikzEdt 中的所见即所得模式非常有用,但是:
\begin{tikzpicture}[use Hobby shortcut ]
命令似乎破坏了它的所见即所得编辑模式。
有人可以帮我弄这个吗 ?
答案1
这curve through
符号旨在只是在点上应用 Hobby 算法,因此它并不是一个完整的路径构造套件。因此
(a) to[curve through={(b) (c) (d)}] (e)
和
(a) .. (b) .. (c) .. (d) .. (e)
应该是相同的。允许..
坐标之间的curve through
转换是为了便于在两者之间切换,但它们实际上是语法中的 NOP curve through
。因此,如果use Hobby shortcut
证明存在问题,可以采用上面的行并将其简单地更改为
(a) to[curve through={(b) .. (c) .. (d)}] (e)
从而节省了一些编辑工作。
版本curve through
(a) .. (b) .. (c) -- (d) .. (e) .. (f)
因此
(a) to[curve through={(b)}] (c) -- (d) to[curve through={(e)}] (f)
也就是说,每个单独的部分都需要用 替换curve through
。
您的代码的工作版本如下:
\documentclass{article}
%\url{https://tex.stackexchange.com/q/583913/86}
\usepackage{tikz}
\usetikzlibrary{hobby}
\begin{document}
\begin{tikzpicture}
\draw (1.21,2.4598) coordinate (z1);
\draw (0.4820,2.1281) coordinate (z2);
\draw (-0.8821,0.9569) coordinate (z3);
\draw (-2.6476,-0.2303) coordinate (z4);
\draw (-2.4570,-1.1470) coordinate (z5);
\draw (-4.33,-1.77) coordinate (z6);
\draw (z1) to [ curve through ={(z2)} ] (z3) -- (z4) to[curve through={(z5)}] (z6);
\end{tikzpicture}
\end{document}