Anzeige:
Ergebnis 1 bis 4 von 4

Thema: tikz: Linie bei "node" wird nicht bis an den "node" gezeichnet

  1. #1
    Registrierter Benutzer Avatar von Barny.G
    Registriert seit
    11.09.2008
    Beiträge
    120

    tikz: Linie bei "node" wird nicht bis an den "node" gezeichnet

    Liebes Forum,

    ein kleines, hoffentlich leicht zu lösendes Problem:

    In einer tikz-graphik sollen möglichst einfach beim Zeichnen der Linien die Koordinaten der "Ecken" gespeichert werden. Meiner Meinung nach sollte das mit den "nodes" gehen. Greife ich dann aber auf diese Variablen zu, dann wird eben nicht von/bis zu der "node"-Koordinate gezeichnet.

    "Inner sep=0" zu setzen scheint in meinem Fall nichts zu bringen. Und hier ein bisschen code zum Ausprobieren:

    Code:
    \documentclass{scrreprt}
    \usepackage[ngerman]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{amsmath}
    \usepackage[locale = DE, range-phrase = -]{siunitx}
    \usepackage{tikz}
     \usetikzlibrary{shapes,arrows,positioning,calc,fit,patterns,through,intersections}
    
    \begin{document}
    \centering
    \begin{tikzpicture}[scale=1.0]
     %Variablen
      \coordinate[] (Org) at (0,0);     % Nullpkt des KoordSystems
      \newcommand{\xachse}{8.0}         % Länge der pos. x-Achse
      \newcommand{\yachse}{\xachse*0.5} % Länge der pos. y-Achse
      \newcommand{\zachse}{\xachse*0.25} % Länge der pos. z-Achse
    
    %Zeichenebene
     \draw[black] (Org)                  node[inner sep=0] (Evl) {}
                       --++(0:\xachse)   node[inner sep=0] (Evr) {}
                       --++(45:\yachse)  node[inner sep=0] (Ehr) {}
                       --++(180:\xachse) node[inner sep=0] (Ehl) {}--cycle;
    									
     \draw[black] (Evl) --++(270:\zachse) node[inner sep=0] (Uvl) {}
                       --++(0:\xachse)   node[inner sep=0] (Uvr) {}
                       --(Evr);
    
    \draw[black] (Uvr) --++(45:\yachse) node[inner sep=0] (Uhr) {}
                       --(Ehr);
    									
    %das hier ist nur, um die Fehlerstellen zu kennzeichnen
    \draw[red] (Evl) circle(0.1) node[left] {Fehler}
               (Evr) circle(0.1) node[right] {Fehler}
               (Ehr) circle(0.1) node[right] {Fehler}
               (Uvr) circle(0.1) node[below] {Fehler};
    
    \end{tikzpicture}
    \end{document}
    Für ganz Eilige habe ich auch noch eine Grafik

    Test.jpg

    angehangen.

    Viele Grüße

    Thomas
    ... mein Ball ist umgefallen

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Zitat Zitat von Barny.G Beitrag anzeigen
    In einer tikz-graphik sollen möglichst einfach beim Zeichnen der Linien die Koordinaten der "Ecken" gespeichert werden. Meiner Meinung nach sollte das mit den "nodes" gehen. Greife ich dann aber auf diese Variablen zu, dann wird eben nicht von/bis zu der "node"-Koordinate gezeichnet.

    "Inner sep=0" zu setzen scheint in meinem Fall nichts zu bringen. Und hier ein bisschen code zum Ausprobieren:
    und "minimum size"?

    Alternativ kannst Du dem Nodenamen auch .center anhängen:
    Code:
    \documentclass{scrreprt}
    \usepackage[ngerman]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{amsmath}
    \usepackage[locale = DE, range-phrase = -]{siunitx}
    \usepackage{tikz}
     \usetikzlibrary{shapes,arrows,positioning,calc,fit,patterns,through,intersections}
    
    \begin{document}
    \centering
    \begin{tikzpicture}[scale=1.0]
     %Variablen
      \coordinate[] (Org) at (0,0);     % Nullpkt des KoordSystems
      \newcommand{\xachse}{8.0}         % Länge der pos. x-Achse
      \newcommand{\yachse}{\xachse*0.5} % Länge der pos. y-Achse
      \newcommand{\zachse}{\xachse*0.25} % Länge der pos. z-Achse
    
    %Zeichenebene
     \draw (Org)                  node (Evl) {}
                       --++(0:\xachse)   node (Evr) {}
                       --++(45:\yachse)  node (Ehr) {}
                       --++(180:\xachse) node (Ehl) {}--cycle;
                      
     \draw (Evl.center) --++(270:\zachse) node (Uvl) {}
                       --++(0:\xachse)   node (Uvr) {}
                       --(Evr.center);
    
    \draw (Uvr.center) --++(45:\yachse) node (Uhr) {}
                       --(Ehr.center);
                      
    %das hier ist nur, um die Fehlerstellen zu kennzeichnen
    \draw[red] (Evl) circle(0.1) node[left] {Fehler?}
               (Evr) circle(0.1) node[right] {Fehler?}
               (Ehr) circle(0.1) node[right] {Fehler?}
               (Uvr) circle(0.1) node[below] {Fehler?};
    
    \end{tikzpicture}
    \end{document}
    VG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Wenn Du nur die Punkte abspeichern willst, kannst Du auch einfach den speziellen Node coordinate nehmen:

    Code:
    \documentclass{scrreprt}
    \usepackage[ngerman]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{amsmath}
    \usepackage[locale = DE, range-phrase = -]{siunitx}
    \usepackage{tikz}
     \usetikzlibrary{shapes,arrows,positioning,calc,fit,patterns,through,intersections}
    
    \begin{document}
    \centering
    \begin{tikzpicture}[scale=1.0]
     %Variablen
      \coordinate[] (Org) at (0,0);     % Nullpkt des KoordSystems
      \newcommand{\xachse}{8.0}         % Länge der pos. x-Achse
      \newcommand{\yachse}{\xachse*0.5} % Länge der pos. y-Achse
      \newcommand{\zachse}{\xachse*0.25} % Länge der pos. z-Achse
    
    %Zeichenebene
     \draw[black] (Org)                  coordinate (Evl)
                       --++(0:\xachse)   coordinate (Evr)
                       --++(45:\yachse)  coordinate (Ehr)
                       --++(180:\xachse) coordinate (Ehl)--cycle;
    									
     \draw[black] (Evl) --++(270:\zachse) coordinate(Uvl)
                       --++(0:\xachse)   coordinate(Uvr)
                       --(Evr);
    
    \draw[black] (Uvr) --++(45:\yachse) coordinate(Uhr)
                       --(Ehr);
    									
    %das hier ist nur, um die Fehlerstellen zu kennzeichnen
    \draw[red] (Evl) circle(0.1) node[left] {Fehler}
               (Evr) circle(0.1) node[right] {Fehler}
               (Ehr) circle(0.1) node[right] {Fehler}
               (Uvr) circle(0.1) node[below] {Fehler};
    
    \end{tikzpicture}
    \end{document}
    Gruß
    Elke

  4. #4
    Registrierter Benutzer Avatar von Barny.G
    Registriert seit
    11.09.2008
    Beiträge
    120
    Hallo Rainer und Elke,

    vielen Dank! Beides funktioniert hervorragend. Und beides kann ich auch sehr gut gebrauchen. Endlich weiß ich nun auch wie ich die Zentrumskoordinate von nodes auslesen kann. So ist das eben, wenn man alles autodidaktisch macht. (oder wie die meisten muss)

    Herzliche Grüße

    Thomas
    ... mein Ball ist umgefallen

Lesezeichen

Berechtigungen

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