TikZ 中的“假粗体”?

TikZ 中的“假粗体”?

是否可以“粗略地处理” tikzpicture,就像FakeBold文本一样fontspec

更确切地说,我希望每个形状和每个路径都tikzpicture稍微扩大一点。这样线条就会变粗,形状就会变大。

这个问题的动机是,有时在绘制图片并将其缩放到很小之后,该图片的原始“厚度”对于可见性来说不够。line width在这种情况下,更改似乎没有用。我也尝试过将不透明度设置为 100% 来放置阴影,但无法获得所需的结果。

你有什么建议吗?


下面是测试图片。

\documentclass[tikz]{standalone}
\usetikzlibrary{svg.path}
\begin{document}
\begin{tikzpicture}[yscale=-1,scale=1cm/425cm]
\clip (0cm,0cm) rectangle (425cm,425cm);
\pgfpathsvg{M0 6000 m2925 1100 c419 -36 775 -108 1158 -234 464 -154 1364 -509 2062 -813 545 -238 850 -354 1265 -479 610 -185 1214 -311 1697 -354 198 -18 546 -8 703 20 300 53 560 165 696 298 114 111 154 261 100 377 -83 182 -428 355 -619 311 -37 -8 -39 -7 -35 14 14 94 256 92 447 -4 148 -75 276 -206 307 -314 22 -73 15 -197 -15 -274 -59 -153 -171 -261 -376 -363 -151 -75 -244 -106 -410 -140 -194 -39 -306 -49 -555 -49 -625 0 -1342 132 -2150 396 -351 114 -633 226 -1155 458 -1411 625 -2216 924 -2758 1024 -291 54 -363 60 -702 61 -287 0 -335 -2 -465 -23 -416 -67 -701 -173 -950 -356 -117 -85 -210 -199 -210 -255 0 -36 -22 -71 -45 -71 -31 0 -45 19 -45 62 0 155 267 374 638 522 244 98 496 155 842 189 81 8 464 6 575 -3z}
\pgfusepath{fill}
\end{tikzpicture}
\end{document}

答案1

如果您使用了\pgfusepath{stroke},则可以使用 加粗笔触\pgfsetlinewidth。但是,您绘制轮廓并使用 进行填充\pgfusepath{fill}

但是,您可以对控制点应用仿射变换,例如旋转、缩放和平移。在这种情况下,增加 y 比例,然后平移图像以使其保持在框架内,可能会产生您想要的效果。

\documentclass[tikz]{standalone}
\usetikzlibrary{svg.path}
\begin{document}
\begin{tikzpicture}[yscale=-1,scale=1cm/425cm]
\clip (0cm,0cm) rectangle (425cm,425cm);
\pgfpathsvg{M0 6000 m2925 1100 c419 -36 775 -108 1158 -234 464 -154 1364 -509 2062 -813 545 -238 850 -354 1265 -479 610 -185 1214 -311 1697 -354 198 -18 546 -8 703 20 300 53 560 165 696 298 114 111 154 261 100 377 -83 182 -428 355 -619 311 -37 -8 -39 -7 -35 14 14 94 256 92 447 -4 148 -75 276 -206 307 -314 22 -73 15 -197 -15 -274 -59 -153 -171 -261 -376 -363 -151 -75 -244 -106 -410 -140 -194 -39 -306 -49 -555 -49 -625 0 -1342 132 -2150 396 -351 114 -633 226 -1155 458 -1411 625 -2216 924 -2758 1024 -291 54 -363 60 -702 61 -287 0 -335 -2 -465 -23 -416 -67 -701 -173 -950 -356 -117 -85 -210 -199 -210 -255 0 -36 -22 -71 -45 -71 -31 0 -45 19 -45 62 0 155 267 374 638 522 244 98 496 155 842 189 81 8 464 6 575 -3z}
\pgfusepath{fill}
\end{tikzpicture}

\begin{tikzpicture}[yscale=-1,scale=1cm/425cm]
\clip (0cm,0cm) rectangle (425cm,425cm);
\pgftransformyscale{1.5}
\pgftransformyshift{-50cm}
\pgfpathsvg{M0 6000 m2925 1100 c419 -36 775 -108 1158 -234 464 -154 1364 -509 2062 -813 545 -238 850 -354 1265 -479 610 -185 1214 -311 1697 -354 198 -18 546 -8 703 20 300 53 560 165 696 298 114 111 154 261 100 377 -83 182 -428 355 -619 311 -37 -8 -39 -7 -35 14 14 94 256 92 447 -4 148 -75 276 -206 307 -314 22 -73 15 -197 -15 -274 -59 -153 -171 -261 -376 -363 -151 -75 -244 -106 -410 -140 -194 -39 -306 -49 -555 -49 -625 0 -1342 132 -2150 396 -351 114 -633 226 -1155 458 -1411 625 -2216 924 -2758 1024 -291 54 -363 60 -702 61 -287 0 -335 -2 -465 -23 -416 -67 -701 -173 -950 -356 -117 -85 -210 -199 -210 -255 0 -36 -22 -71 -45 -71 -31 0 -45 19 -45 62 0 155 267 374 638 522 244 98 496 155 842 189 81 8 464 6 575 -3z}
\pgfusepath{fill}
\end{tikzpicture}
\end{document}

原始图像

变换后的图像

答案2

根据@Davisior的回答,我成功地做到了真正的“假粗体”:

\documentclass[tikz]{standalone}
\usetikzlibrary{svg.path}
\usetikzlibrary{calc}
\begin{document}

\def\pickern{
    \pgfpathsvg{M0 6000 m2925 1100 c419 -36 775 -108 1158 -234 464 -154 1364 -509 2062 -813 545 -238 850 -354 1265 -479 610 -185 1214 -311 1697 -354 198 -18 546 -8 703 20 300 53 560 165 696 298 114 111 154 261 100 377 -83 182 -428 355 -619 311 -37 -8 -39 -7 -35 14 14 94 256 92 447 -4 148 -75 276 -206 307 -314 22 -73 15 -197 -15 -274 -59 -153 -171 -261 -376 -363 -151 -75 -244 -106 -410 -140 -194 -39 -306 -49 -555 -49 -625 0 -1342 132 -2150 396 -351 114 -633 226 -1155 458 -1411 625 -2216 924 -2758 1024 -291 54 -363 60 -702 61 -287 0 -335 -2 -465 -23 -416 -67 -701 -173 -950 -356 -117 -85 -210 -199 -210 -255 0 -36 -22 -71 -45 -71 -31 0 -45 19 -45 62 0 155 267 374 638 522 244 98 496 155 842 189 81 8 464 6 575 -3z}
}

\begin{tikzpicture}[yscale=-1,scale=10cm/425cm]
\clip (0cm,0cm) rectangle (425cm,425cm);
\foreach \i in {1,...,60}
{
    \pgftransformxshift{cos{(360/60*\i)}*150}
    \pgftransformyshift{sin{(360/60*\i)}*150}
    \pickern
}
\pgfusepath{fill}
\end{tikzpicture}
\end{document}

它沿着圆圈重复图片以使其看起来更大胆。

相关内容