最初的问题
是否有一种简单的方法可以沿路径长度改变路径的厚度以创建楔形(例如,创建立体化学提示)?
例如顺式-环己烷-1,2-二醇,在ACD/ChemSketch 中绘制。
该expanding waves
装饰器对于后退键来说看起来很完美,但没有列出对于接近键的等效物。
玩转扩展波浪装饰器
根据 Jake 链接的线程,我查看了可以使用装饰器调整的变量expanding waves
。我认为当前的 PGF/TikZ 手册没有明确提到它,但expanding waves
装饰器有一个segment length
变量,如这个例子- 将其设置为我的线宽 0.4 pt 会产生一个实心楔子。
正如杰克 (Jake) 指出的那样,出于性能原因,这是解决此问题的错误方法。
答案1
这是一个三角形装饰。它用等腰三角形替换路径的第一段。您可以通过triangle path
在 adraw
或fill
命令中指定选项来使用它。可以使用可选参数指定宽度(即使triangle path=2cm
三角形宽度为 2 厘米)。
以下命令
\draw [fill=yellow,triangle path] (0,0) -- (3,2);
\fill [triangle path=4ex] (4,1) -- (7,0);
将产生
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations}
\begin{document}
\pgfdeclaredecoration{triangle}{start}{
\state{start}[width=0.99\pgfdecoratedinputsegmentremainingdistance,next state=up from center]
{\pgfpathlineto{\pgfpointorigin}}
\state{up from center}[next state=do nothing]
{
\pgfpathlineto{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentamplitude}}
\pgfpathlineto{\pgfqpoint{\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentamplitude}}
\pgfpathlineto{\pgfpointdecoratedpathfirst}
}
\state{do nothing}[width=\pgfdecorationsegmentlength,next state=do nothing]{
\pgfpathlineto{\pgfpointdecoratedinputsegmentfirst}
\pgfpathmoveto{\pgfpointdecoratedinputsegmentlast}
}
}
\tikzset{
triangle path/.style={decoration={triangle,amplitude=#1}, decorate},
triangle path/.default=1ex}
\begin{tikzpicture}
\draw [fill=yellow,triangle path] (0,0) -- (3,2);
\fill [triangle path=4ex] (4,1) -- (7,0);
\end{tikzpicture}
\end{document}