如何在 TikZ(关键路径方法设计)中设计此路径?

如何在 TikZ(关键路径方法设计)中设计此路径?

请考虑下面的图片:

节点设计

我想使用tikzpicture环境创建这些节点。每个节点中间都必须有一条分界线,以便将节点分为三个部分(所有部分都包含最多 2 位数字)。还有一些节点带有连字符类型的箭头,指向其他节点;这些并集(带或不带点)一个线段(带有一些线条上方的文本)必须加入或离开节点的左端或右端之一,正如您在图像中看到的那样。

此外,为了让事情变得更简单,我希望每个节点和每个联合都能够以一种简单的方式提供,例如:

\begin{tikzpicture}
    \node at (0,0) (1) {1,0,0};
    \node at (1,-1) (2) {2,5,7};
    \node at (2,0) (3) {3,9,61};

    \draw (1) to [text=A(1)] (2) to [dotted] (3);
\end{tikzpicture}

(还有更多节点和连接)。

对于那些好奇的人,我试图用你们巨大的心去模仿一个关键路径方法 (CPM)

谢谢你!!

编辑

按照建议扎尔科以及提供的示例伊格纳西我创建了一个 MWE,如果我使用该包,它将生成 18 个错误\usepackage[spanish]{babel}(我需要它,但这次我附上它以向您展示代码运行良好)。我如何将我需要的这个包添加到代码中?:

\documentclass{article}
%\usepackage[spanish]{babel}      % <-- HERE IS THE PACKAGE THAT I NEED
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{tasks}
\usepackage{vmargin}
\usepackage{enumitem}
\usepackage{hhline}
\usepackage{pdflscape}

\setpapersize{A4}
\setmargins{2.2cm}
{0.5cm}
{16.5cm}
{23.42cm}
{30pt}
{1cm}
{0pt}
{2cm}
\pagestyle{fancy}
\fancyhf{}
\cfoot{\large \thepage}
\renewcommand{\headrulewidth}{0pt}

\usepackage{colortbl}

\usepackage{pgfplots}
\usetikzlibrary{shapes.multipart, positioning}
\pgfplotsset{compat=1.8}

\begin{document}

\begin{tikzpicture}[
    trinode/.style={
    circle split,
    draw,
    path picture={\draw (path picture bounding box.center)--(path picture bounding box.south);}}
    ]

    %\node[trinode] (1) {99\nodepart{lower} 99\ \ 99};
    \node[trinode] at (0,0) (1) {99\nodepart{lower} 99\ \ 99};

    %\node[trinode, below right=of 1] (2) {99\nodepart{lower} 99\ \ 99};
    \node[trinode] at (2,-2) (2) {99\nodepart{lower} 99\ \ 99};

    %\node[trinode, above right=of 2] (3) {99\nodepart{lower} 99\ \ 99};
    \node[trinode] at (4,0) (3) {99\nodepart{lower} 99\ \ 99};

    \draw[->] (1)--(2) node[midway, right] {A(1)};
    \draw[->,dashed] (2)--(3);
\end{tikzpicture}

\end{document}

答案1

我曾在 TeX.SX 的某个地方见过这种类型的节点,但由于我不知道向谁搜索它们,因此我提供了一个解决方案circle split

这些节点使用上下两个文本,中间用一条水平线隔开。我的解决方案是将两个下部数字声明为一个公共文本,然后命令path picture绘制垂直线。

节点之间的连接和路径的标签是常见的。

\documentclass[tikz,border=2mm]{standalone}

\usetikzlibrary{babel, positioning, shapes.multipart}

\begin{document}

\begin{tikzpicture}[
    trinode/.style={
            circle split,
            draw,
            path picture={\draw (path picture bounding box.center)--(path picture bounding box.south);}}]

\node[trinode] (1) {99\nodepart{lower} 99\ \ 99};

\node[trinode, below right=of 1] (2) {99\nodepart{lower} 99\ \ 99};

\node[trinode, above right=of 2] (3) {99\nodepart{lower} 99\ \ 99};

\draw[->] (1)--(2) node[midway, right]{A(1)};
\draw[->,dashed] (2)--(3);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容