我可以使用 TikZ 绘制具有中心节点的三角图吗?

我可以使用 TikZ 绘制具有中心节点的三角图吗?

我正在尝试使用 TikZ 将此图中的“c”放置在由“a”、“b”、“d”组成的三角形的中心。有没有简单的方法可以做到这一点,还是我应该尝试使用 tikzpicture 来实现此目的?

$$\begin{tikzcd}[column sep=small]  a \arrow[dash]{dr} \arrow[dash]{dd} \arrow[dash]{drr}& & \\
    & c \arrow[dash]{r}& d  \\
    b \arrow[dash]{ur} \arrow[dash]{urr}&&
    \end{tikzcd}$$

答案1

那么在 c 和 d 之间插入一个额外的列怎么样?

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-cd}
\begin{document}
$$\begin{tikzcd}[column sep=small]  
 a \arrow[dash]{dr} \arrow[dash]{dd} \arrow[dash]{drrr} & & \\
             & c \arrow[dash]{rr} & & d  \\
 b \arrow[dash]{ur} \arrow[dash]{urrr}&&
 \end{tikzcd}$$
\end{document}

但是,这不是一个等边三角形,c 也不在真正的中心。在这种情况下,我更喜欢使用 tikzpicture:

\begin{tikzpicture}
    \node (c) {$c$};
    \foreach \angle/\name in {0/d,120/a,240/b}
      \node (\name) at (\angle:1) {$\name$};
    \draw (a) -- (d) -- (b) -- (a);
    \foreach \name in {a,b,d} \draw (c) -- (\name);
\end{tikzpicture}

比较三个版本:

比较

如果 (a) 和 (b) 不需要垂直对齐,我更愿意将边缘 (b)--(d) 设为水平,这样可以更好地呈现 (c) 位于中心的视觉印象:

旋转三角形

通过改变 tikzpicture 版本中的角度可以轻松实现这一点:

\begin{tikzpicture}
    \node (c) {$c$};
    \foreach \angle/\name in {-30/d,90/a,210/b}
      \node (\name) at (\angle:1) {$\name$};
    \draw (a) -- (d) -- (b) -- (a);
    \foreach \name in {a,b,d} \draw (c) -- (\name);
\end{tikzpicture}

相关内容