我对 tikz 还很陌生。我想在 tikzpicture 环境中使用一个简单的外部图像,就像下面的 mwe 一样
\documentclass[tikz,border=5]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[double = black!35,double distance =0.2cm,line width =0.08cm,white]
(-4,0) -- (-0.5,0) arc (-90:0:2.5 and 2) arc (0:180:2) ;
\draw[double = black!35,double distance =0.2cm,line width =0.08cm,white]
(4,0) -- (0.5,0) arc (-90:-190:2.5 and 2);
\node [xscale=1,shift={(3,0.5)}] at (0,0) {\includegraphics[width=1cm]{motorbike.png}};
\end{tikzpicture}
\end{document}
此图片是 motorbike.png 吗?
当使用 pdflatex 编译时,上述代码可以完成我需要的操作。
我的问题是我想使用代码蒂克扎克斯据我所知,它在 LaTeX 上运行并且无法处理 png 等光栅格式。
由于“外部”图像是一个简单的轮廓,我认为我可以“轻松地”将其变成 tikz 图片并将其用于我的其他 tikzpicture 中。
安装 potrace 和 svg2tikz 后(如建议的那样这里) 我实际上成功地为“motorbike.png”创建了一个 tikz 代码,但我在将此代码插入我的 tikzpicture 时遇到了很大困难。
svg2tikz 的输出相当长,可以下载这里。
这个“独立”代码可以正确编译并生成原始图像的漂亮追踪。
不过,我在 MWE 中使用此输出时遇到了麻烦。我最初考虑\path
只使用零件,但这会产生“尺寸太大”错误,可能是因为路径中的数字“太大”。
我尝试使用 potrace 和 svg2tikz 的缩放参数进行实验,但这些参数仅对 tikz 选项(例如“xscale”和“yscale”)产生影响,而“大”数字不受影响。
接下来,我尝试从 svg2tikz 的输出开始。也就是说,我尝试将 MWE 中的其他内容插入其中,而不是反过来,这对我来说似乎更“自然”。经过反复试验,我得出了这个代码,其中我将 svg2tikz 输出的路径部分放在单独的“path.tex”文件中以简洁起见。
\documentclass[tikz]{standalone}
\begin{document}
\def \globalscale {1.00000}
\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=30, xscale=30, inner sep=0pt, outer sep=0pt]
\draw[double = black!35,double distance =4,line width =1,white] (-4,0) -- (-0.5,0) arc (-90:0:2.5 and 2) arc (0:180:2) ;
\draw[double = black!35,double distance =4,line width =1,white] (4,0) -- (0.5,0) arc (-90:-190:2.5 and 2);
\begin{scope}[shift={(2.5,0)},xscale=0.0002,yscale=0.0002,fill=black]
\input{path.tex}
\end{scope}
\end{tikzpicture}
\end{document}
结果还不错,在 tikzjax 中确实有效。这可以在tikzjax 演示页面,尽管由于某种原因,y 尺度必须反转。
现在我的问题是:是否有更自然的方式将 tikz 图形包含在预先存在的 tikz“环境”中?
我问这个问题的原因是,在这种情况下,我创建了“循环循环”坡道,然后想“让我们找到一张漂亮的摩托车图像”。
在我看来,上述解决方案需要先找到一个 tikz 图像(路径),然后绘制它周围的“环境”,这看起来有点不自然。
另外,假设我想使用不同的图像(可能是一辆汽车或一辆自行车尝试“绕圈”)。我认为风险在于不同图像的比例可能不同,而将“环境”的比例与之匹配可能会很棘手。将图像的比例与环境相匹配肯定会更容易,就像在 中一样\includegraphics[width = 1cm]{image.png}
。
有办法吗?我花了三天时间研究它,我所做的最好的就是上面描述的。
非常感谢你的帮助。
弗朗西斯科