Tikz-Ketten mit einer Seite des Knotens ganz links, dick und fett

Tikz-Ketten mit einer Seite des Knotens ganz links, dick und fett

Guten Morgen allerseits. Dies ist tatsächlich das erste Mal, dass ich hier schreibe, also danke an alle, die antworten. Ich schreibe meine Bachelorarbeit und stecke derzeit beim Zeichnen einer Turingmaschine fest. Was ich gerne machen würde, ist so etwas wie das hier:

Bildbeschreibung hier eingeben

Außer dass ich die linke Seite des ersten Knotens (nur die linke Seite, nicht alle 4 Seiten) sehr dick haben möchte. Was ich bisher gemacht habe, ist Folgendes:

\begin{tikzpicture}
\edef\turingtapesize{0.7cm}
\tikzstyle{tape}=[draw,minimum size=\turingtapesize]
\tikzset{
    leftmostnode/.style={
        draw,minimum size=\turingtapesize,
        append after command={% <= for the leftside line of the leftward node
            \pgfextra{%
            \begin{pgfinterruptpath}
            \begin{pgfonlayer}[foreground]
                \draw[verythick] (\tikzlastnode.south west)--(\tikzlastnode.north west);
            \end{pgfonlayer}
            \end{pgfinterruptpath}
            }
        }
    }
}

% Drawing the tape itself
\begin{scope}[start chain=0 going right,node distance=0mm]
    \node[on chain=0,tape] (b)  {0};
    \node[left=of b,leftmostnode](a){1};
    \node[on chain=0,tape] (c)  {1};
    \node[on chain=0,tape] (d)  {0};
    \node[on chain=0,tape] (e)  {1};
    \node[on chain=0,tape] (f)  {0};
    \node[on chain=0,tape] (g)  {0};
    \node[on chain=0,tape] (h)  {1};
    \node[on chain=0,tape] (i)  {1};
    \node[on chain=0,tape] (l)  {$\sqcup$};
    \node[on chain=0,tape] (l)  {$\sqcup$};
    \node[on chain=0,tape] (l)  {$\sqcup$};
\end{scope}
\end{tikzpicture}

Aber ich erhalte eine Fehlermeldung:

Entschuldigung, die angeforderte Ebene '[' konnte nicht gefunden werden. Vielleicht haben Sie sie falsch geschrieben?

\nodeleft=von b,linkster Knoten {1};

Darf ich Sie auch fragen, wie man dieses „Kettensägen“-Ende (gibt es diesen Begriff überhaupt?) des Bandes hinbekommt? Danke, Prost ;) Quelle:1 2

EDIT Wie von moospit vorgeschlagen, habe ich das „Dickenproblem“ umgangen. Jetzt muss ich nur noch diese spezielle gezackte Linie erstellen ;)

EDIT2 Ich habe gerade deine Antwort gesehen. Ich habe es etwas anders gelöst. Ich poste unten den Code des gesamten Tikz-Bildes ;)

\begin{tikzpicture}
\edef\turingtapesize{0.7cm}
\tikzstyle{tape}=[draw,minimum size=\turingtapesize]

% Drawing the tape itself
\begin{scope}[start chain=0 going right,node distance=0mm]
    \node[on chain=0,tape]          (a)     {1}       ;
    \node[on chain=0,tape]          (b)     {0}       ;
    \node[on chain=0,tape]          (c)     {1}       ;
    \node[on chain=0,tape]          (d)     {0}       ;
    \node[on chain=0,tape]          (e)     {1}       ;
    \node[on chain=0,tape]          (f)     {0}       ;
    \node[on chain=0,tape]          (g)     {0}       ;
    \node[on chain=0,tape]          (h)     {1}       ;
    \node[on chain=0,tape]          (i)     {1}       ;
    \node[on chain=0,tape]          (l)     {$\sqcup$};
    \node[on chain=0,tape]          (l)     {$\sqcup$};
    \node[on chain=0,tape]          (l)     {$\sqcup$};
    \node[on chain=0,tape,draw=none](m)     {}        ;
    \node[on chain=0,tape,draw=none](n)     {$\ldots$};

% Coordinates
    \coordinate(snake1) at ($ (l.north east)!0.5cm!(m.north east) $);
    \coordinate(snake2) at ($ (l.south east)!.5cm!(m.south east) $) ;

    \draw [-] (l.north east) -- (snake1);
    \draw [-] (l.south east) -- (snake2);
    \draw[snake=snake,
        segment amplitude=.4mm,
            segment length=1.75mm,
        line after snake=0mm] (snake1) -- (snake2);
\end{scope}

    \draw[ultra thick] (a.south west) -- (a.north west)                   ;
    \node[draw,above=0.75cm of e,minimum size=\turingtapesize] (Q) {$q_3$};
    \draw[-latex] (Q) -- (e)                                              ;     
\end{tikzpicture} 

BEARBEITEN3

\begin{tikzpicture}
  \tikzset{tape/.style={minimum size=.7cm, draw}}
  \begin{scope}[start chain=0 going right, node distance=0mm]
   \foreach \x [count=\i] in {1,0,1,0,1,0,0,1,1,$\sqcup$,$\sqcup$,$\sqcup$} {
    \ifnum\i=12 % if last node reset outer sep to 0pt
      \node [on chain=0, tape, outer sep=0pt] (n\i) {\x};
      \draw (n\i.north east) -- ++(.1,0) decorate [decoration={zigzag, segment length=.12cm, amplitude=.02cm}] {-- ($(n\i.south east)+(+.1,0)$)} -- (n\i.south east) -- cycle;
     \else
      \node [on chain=0, tape] (n\i) {\x};
     \fi
     \ifnum\i=1 % if first node draw a thick line at the left
      \draw [line width=.1cm] (n\i.north west) -- (n\i.south west);
     \fi
   }
   \node [right=.25cm of n12] {$\cdots$};
   \node [tape, above left=.25cm and 1cm of n1] (q3) {$q_3$};
   \draw [>=latex, ->] (q3) -| (n5);
  \end{scope}
 \end{tikzpicture}

Und hier das Endergebnis: Bildbeschreibung hier eingeben

Antwort1

Wie wäre es, wenn Sie Ihren tapeStil für den Knoten verwenden aund einfach dies nach Ihrem Kettencode hinzufügen:

\draw [very thick] (a.south west) -- (a.north west);

oder

\draw [line width=.1cm] (a.south west) -- (a.north west);

Auf diese Weise können Sie eine zusätzliche Linie hinzufügen, die über Ihrem Knoten gezeichnet wird a.

gerendertes Bild

BEARBEITEN:Update zu Ihrem Zickzack-Knoten am Ende der Kette (MWE)

Hier auch noch ein paar Informationen zu deinem Zickzack-Knoten. Ich habe die zigzag-Dekoration auf einem Teil des unten beschriebenen Pfades verwendet. Passe einfach die zigzag segment lengthund Amplitude an deine Bedürfnisse an.

Achten Sie darauf, die Werte outer sepIhrer Kettenknoten auf zu setzen 0, da der Zickzackpfad sonst von den Koordinaten und etwas verschoben north eastwird south east.

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

\usetikzlibrary{decorations.pathmorphing, calc}

\begin{document}
 \begin{tikzpicture}
  \node [draw, outer sep=0pt] (n) {n};
  \draw (n.north east) -- ++(.1,0) decorate [decoration={zigzag, segment length=.12cm, amplitude=.02cm}] {-- ($(n.south east)+(+.1,0)$)} -- (n.south east) -- cycle;
 \end{tikzpicture}
\end{document}

gerendertes Bild

NUR NOCH EINE BEARBEITUNG:konnte nicht widerstehen ;). Kleine Umschreibung Ihres Codes, um die Kette für weitere Elemente erweiterbar zu machen:

Wenn du weitere Fragen hast, frag einfach. Du kannst die bei Bedarf ganz einfach zigzagdurch einige ersetzen.snakes

\documentclass[tikz, border=5mm]{standalone}
\usetikzlibrary{calc, chains, decorations.pathmorphing}

\begin{document}
 \begin{tikzpicture}
  \tikzset{tape/.style={minimum size=.7cm, draw}}
  \begin{scope}[start chain=0 going right, node distance=0mm]
   \foreach \x [count=\i] in {1,0,1,10,1,1,1,1,$\sqcup$,$\sqcup$,$\sqcup$} {
    \ifnum\i=11 % if last node reset outer sep to 0pt
      \node [on chain=0, tape, outer sep=0pt] (n\i) {\x};
      \draw (n\i.north east) -- ++(.1,0) decorate [decoration={zigzag, segment length=.12cm, amplitude=.02cm}] {-- ($(n\i.south east)+(+.1,0)$)} -- (n\i.south east) -- cycle;
     \else
      \node [on chain=0, tape] (n\i) {\x};
     \fi
     \ifnum\i=1 % if first node draw a thick line at the left
      \draw [line width=.1cm] (n\i.north west) -- (n\i.south west);     
     \fi
   }
   \node [right=.25cm of n11] {$\cdots$};
   \node [tape, above left=.25cm and 1cm of n1] (q7) {$q_7$};
   \draw [>=latex, ->] (q7) -| (n5); 
  \end{scope}  
 \end{tikzpicture}
\end{document} 

gerendertes Bild

verwandte Informationen