![使用 Tikz 在矩阵上绘制一些特定形状](https://linux22.com/image/380827/%E4%BD%BF%E7%94%A8%20Tikz%20%E5%9C%A8%E7%9F%A9%E9%98%B5%E4%B8%8A%E7%BB%98%E5%88%B6%E4%B8%80%E4%BA%9B%E7%89%B9%E5%AE%9A%E5%BD%A2%E7%8A%B6.png)
答案1
这是一个建议。它本质上非常简单,您只需matrix
以通常的方式创建一个 TikZ,然后使用节点的坐标绘制彩色线条。为了确保绿线不会位于红线和蓝线之上,我已调整了它使用的坐标0.5mm
,这由我保存为的变量控制\offset
。
text width
此外,我为节点设置了并使用align=center
。这有助于在矩阵周围放置外部方括号。
代码
\documentclass[margin=0.5cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix,decorations.pathreplacing}
\pgfkeys{tikz/mymatrixenv/.style={decoration=brace,every left delimiter/.style={xshift=4pt},every right delimiter/.style={xshift=-4pt}}}
\pgfkeys{tikz/mymatrix/.style={matrix of math nodes,left delimiter=[,right delimiter={]},inner sep=1pt,row sep=0em,column sep=0em,nodes={inner sep=6pt}}}
\begin{document}
\begin{tikzpicture}[baseline=0cm,mymatrixenv]
\matrix [mymatrix,text width=0.6em,align=center] (m)
{
a & b & c \\
d & e & f \\
g & h & i \\
};
\pgfmathsetmacro{\offset}{0.5mm}
\draw [thick,blue] (m-1-1.west) |- (m-3-3.south) -- cycle;
\draw [thick,red] (m-1-1.north) -| (m-3-3.east) -- cycle;
\draw [thick,green,rounded corners=1mm] ([yshift=\offset]m-1-1.west) -- ([xshift=-\offset]m-1-1.north) -- ([yshift=-\offset]m-3-3.east) -- ([xshift=\offset]m-3-3.south) -- cycle;
\end{tikzpicture}
\end{document}
按照@Sigur 的建议,三角形也可以是圆形的: