Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Tikz Problem (zeichnen von einem pfeil)

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.08.2003
    Beiträge
    7

    Tikz Problem (zeichnen von einem pfeil)

    Hallo,

    ich habe folgenden code:

    Code:
    \begin{figure}[h]
    \begin{center}
    \begin{tikzpicture}
        \def\blockdist{1.1}
        \def\edgedist{0.3}
        \tikzstyle{byte}=[draw, fill=yellow!20, text centered]
        \node (byte1) [byte] {byte};
        \path (byte1)+(\blockdist,0) node (byte2) [byte] {byte};
        \path (byte2)+(\blockdist,0) node (byte3) [byte] {byte};
        \path (byte3)+(\blockdist,0) node (byte4) [byte] {byte};
        \draw [->] (byte1.north)+(0,\edgedist) -- (byte1.north) {};
        \draw [-] (byte1.north west)+(0,\edgedist) -- node [above] {1.}
            (byte1.north)+(0,\edgedist);
    \end{tikzpicture}
    \end{center}
    \end{figure}
    Das Ergebnis seht ihr im Anhang. Wie ihr seht tut es nicht das, was ich will: ich will dass es eine wagerechte linie von überhalb "north west" zu überhalb von "north" gibt. und dann eine senkrechte von überhalb von north zu north. leider ist der erste strich schief. was mache ich falsch?

    -corsair

  2. #2
    Registrierter Benutzer
    Registriert seit
    08.08.2003
    Beiträge
    7
    so funktioniert es nun:

    Code:
    \begin{figure}[h]
    \begin{center}
    \begin{tikzpicture}
        \def\blockdist{1.1}
        \def\edgedist{0.3}
        \tikzstyle{byte}=[draw, fill=yellow!20, text centered]
        \node (byte1) [byte] {byte};
        \path (byte1)+(\blockdist,0) node (byte2) [byte] {byte};
        \path (byte2)+(\blockdist,0) node (byte3) [byte] {byte};
        \path (byte3)+(\blockdist,0) node (byte4) [byte] {byte};
        \draw [->] (byte1.north west)+(0,\edgedist) -| node [above] {1.}
            (byte1.north);
        \draw [->] (byte2.north west)+(0,\edgedist) -| node [above] {2.}
            (byte2.north);
        \draw [->] (byte3.north west)+(0,\edgedist) -| node [above] {3.}
            (byte3.north);
        \draw [->] (byte4.north west)+(0,\edgedist) -| node [above] {4.}
            (byte4.north);
        \draw [<-] (byte1.south east)+(0,-\edgedist) -| node [below] {4.}
            (byte1.south);
        \draw [<-] (byte2.south east)+(0,-\edgedist) -| node [below] {3.}
            (byte2.south);
        \draw [<-] (byte3.south east)+(0,-\edgedist) -| node [below] {2.}
            (byte3.south);
        \draw [<-] (byte4.south east)+(0,-\edgedist) -| node [below] {1.}
            (byte4.south);
    \end{tikzpicture}
    \end{center}
    \caption{Gluecode byte reordering}
    \label{fig:byte_reordering}
    \end{figure}

  3. #3
    Registrierter Benutzer Avatar von Stefan_K
    Registriert seit
    05.04.2007
    Ort
    Hamburg
    Beiträge
    3.534

    Arrow TikZ calc-library

    Hallo corsair,

    innerhalb von figure-Umgebungen würde ich \centering statt \begin{center} ... \end{center} verwenden, letzteres erzeugt zusätzlichen Abstand, siehe center vs. \centering.

    Beim eigentlichen Problem könntest Du die calc-library verwenden:
    Code:
    \usetikzlibrary{calc}
    ...
    \draw [-] ($(byte1.north west)+(0,\edgedist)$) -- node [above] {1.}
        ($(byte1.north)+(0,\edgedist)$);
    Viele Grüße,

    Stefan

    --
    TeXblog.net

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •