在 tikz 中自由塑形

在 tikz 中自由塑形

我想在 tikz 中绘制这两个图形

在此处输入图片描述

是否可以在 tikz 中绘制这些自由形状,包括字符和点?我的最终目标是制作很多,并带来一个大图像,但如果我能理解如何制作最小的部分,那么我就可以自己制作其余的部分。

谢谢

答案1

您可以使用两条极粗的相交线和一堆节点来制作形状。我选择了 8mm 作为线条粗细,但您可以更改\mywidth。在 tikzpicture 中,您可以使用宏\crossfig[<tikz options>]{<coordinates>}{<label>}<tikz options>通常是颜色,但可以包括其他内容。<coordinates>可以是矩形或极坐标(参见下面的代码)。

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{calc}
\tikzset{
    mycirc/.style={circle, draw=black, thick, outer sep=0, anchor=#1, inner sep=0, minimum size=1.5ex},
    mytext/.style={text=black, anchor=#1, inner sep=0, outer sep=1pt}
}

\newcommand{\mywidth}{8mm}
\newcommand{\crossfig}[3][]{{
    \draw[line width=\mywidth, #1]($(#2)+(-\mywidth,0)$)node[mytext=west]{#3}node[mycirc=east]{}--($(#2)+(\mywidth,0)$)node[mytext=east]{#3}node[mycirc=west]{};
    \draw[line width=\mywidth, #1]($(#2)+(0,-\mywidth)$)node[mytext=south]{#3}node[mycirc=north]{}--node[mycirc=center, fill=black]{}($(#2)+(0,\mywidth)$)node[mytext=north]{#3}node[mycirc=south]{};
    }}

\begin{document}

\begin{tikzpicture}[font=\sffamily]
\crossfig[blue!50]{0,0}{Z}
\crossfig[red]{3,0}{X}
\crossfig[orange!50]{45:3}{M}
\end{tikzpicture}

\end{document}

相关内容