Anzeige:
Ergebnis 1 bis 4 von 4

Thema: tikz - relative Koordinaten

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.12.2004
    Beiträge
    26

    tikz - relative Koordinaten

    Hallo!

    Ich habe hier folgenden tikz Code mit Ergebnis:


    Kann mir jemand sagen ob ich das auch relative angeben kann.
    Ich durchstöbere zwar gerade das pgf manual. Leider finde ich aber bei der Suche nicht das was ich haben will.
    Ich weiß zwar wie es geht wenn ich es drunter/drüber oder daneben haben will,
    Code:
    %absolute Pfadangabe
    \node at (8,0)[box1]{\large compound module};
    \node at (8.5,-0.5)[box1]{\large compound module};
    \node at (9,-1)[box1]{\large compound module};
    \node at (9.5,-1.5)[box1]{\large compound module};
    
    %relative Pfadangabe
    \node at (16,0)[box](d0){\large simple module};
    \node [box1] (d1) [right=-2.5cm of d0]{\large compound module};
    \node [box] (d2) [right=-2.5cm of d1]{\large compound module};
    \node [box1] (d3) [right=-2.5cm of d2]{\large compound module};
    nicht aber wie ich x und y offset gleichzeitig angeben kann. Weiß jemand wie das geht?

    Hier mal das ergebnis von dem Code:


    Außerdem frage ich mich noch warum x1 und x2 nicht gleich sind.
    eigentlich sollte das doch der Fall sein bei gegebenen Abmessungen und verwendeten Werten, oder?
    Boxbreite = 3cm, Abstand bei absoluter Pfadangabe = 0.5cm bei relativer -2.5cm. In beiden fällen sollte doch das Ergebnis gleich sein. Was übersehe ich hier?

    Lg THE_ONE

    Ps.: Hier noch die Definitionen von den Boxen:
    Code:
    \tikzset{box/.style={shape=rectangle,draw=blue,fill=blue!50!white,text=white,rounded corners=3mm, minimum width=3cm,minimum height=2cm,inner sep=0pt,text width = 3cm,text centered}}
    \tikzset{box1/.style={shape=rectangle,draw=red,fill=red!50!yellow,text=white,rounded corners=3mm, minimum width=3cm,minimum height=2cm,inner sep=0pt,text width = 3cm,text centered}}

  2. #2
    Registrierter Benutzer
    Registriert seit
    11.06.2008
    Beiträge
    151
    So vielleicht?
    Code:
    \documentclass{scrartcl}
    \usepackage{tikz}
    \begin{document}
    \begin{tikzpicture}[node distance=0.5cm+2\fboxsep]
    
    \tikzset{box/.style={shape=rectangle,draw=blue,fill=blue!50!white,text=white,rounded corners=3mm, minimum width=3cm,minimum height=2cm,inner sep=0pt,text width = 3cm,text centered}}
    \tikzset{box1/.style={shape=rectangle,draw=red,fill=red!50!yellow,text=white,rounded corners=3mm, minimum width=3cm,minimum height=2cm,inner sep=0pt,text width = 3cm,text centered}}
    %absolute Pfadangabe
    \node at (8,0)[box1]{\large compound module};
    \node at (8.5,-0.5)[box1]{\large compound module};
    \node at (9,-1)[box1]{\large compound module};
    \node at (9.5,-1.5)[box1]{\large compound module};
    
    %relative Pfadangabe
    \node at (16,0)[box](d0){\large simple module};
    \node [box1] (d1) [below right of=d0]{\large compound module};
    \node [box] (d2) [below right of=d1]{\large compound module};
    \node [box1] (d3) [below right of=d2]{\large compound module};
    \draw[|-|] (14.5,-1.5)--(15,-1.5) node[below,midway]{0.5cm};
    
    \end{tikzpicture}
    \end{document}
    Gruß
    Kristian

  3. #3
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    oder du verwendest xshift und yshift als optionen. einfach mal im manual nach den begriffen suchen.

    gruss
    Mein Ball ist umgefallen

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.02.2009
    Beiträge
    68
    Ist das nun schon die Antwort?

    Mit tikz gibt es grundsätzlich nur 2 Möglichkeiten, die Elemente anzuordnen:
    1. mit Koordinaten, so wie du es gemacht hast
    2. mit einem Table (\matrix)

    Mit einem Table lassen sich die Zeilen- und Spaltenweiten angeben (column sep, row sep), die gelten dann für alle Elemente.

    Dann gibt es die Möglichkeit, wie schon gesagt worden ist, mit xshift und yshift die einzelnen Elemente relativ zu verschieben.

    Und dann gibt es noch die Möglichkeit, mit einer for-loop die Elemente iterativ anzuordnen (\foreach).

    Mehr gibt es meines Wissens nach nicht.

    Mit diesen Möglichkeiten kann alles angeordnet werden, was man anordnen will.


    Viele Grüße,

    Klaus
    Geändert von KlausImMai (20-12-2009 um 06:26 Uhr)

Lesezeichen

Berechtigungen

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