# Nodes entlang des Pfades
Wenn es nur darum geht die Punkte zu referenzieren ohne unbedingt die Koordinaten zu kennen kann ich nur empfehlen die Nodes einfach auf der Linie zu platzieren und mittels `pos=<Bruchteil>` beim gewünschten Bruchteil der Gerade zu platzieren. Am Ende befindet sich ein Beispielschnipsel, der einen Pfeil zwischen den beiden Nodes zeichnet. Im Übrigen habe ich alle Pakete entfernt, die nicht benötigt werden (*Minimal*beispiel) und habe `amsmath` durch seinen Nachfolger `mathtools` ersetzt.
\documentclass[tikz]{standalone}
\usepackage{mathtools}
\begin{document}
\begin{tikzpicture}[
dot/.style={draw,fill=#1,circle,inner sep=1pt},
dot/.default=black,
]
\draw[help lines] (-1.5,-0.75) grid (2.5,3.75);
\draw[fill=blue] (0,0) node[dot=blue,label={below:$(x_1,y_1)$}] {} --
node[pos=.333,dot=red] (n1) {1} node[pos=.666,dot=red] (n2) {2}
(1,3) node[dot=blue,label={above:$(x_2,y_2)$}] {};
% Abstand Geraden-Endpunkte
\draw (0.5,-1.2) node {$\text{Abstand}=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$};
% Beispiel fürs referenzieren
\draw[very thick,->] (n1) to[bend left] (n2);
\end{tikzpicture}
\end{document}
> ![alt text][1]
# let
Mit Hilfe der Bibliothek `calc` und der `let` Operation kann man den Abstand und die damit verbundenen Positionen auch von Hand berechnen. Hier ist ziemlich einfach, da der eine der beiden Punkte einfach `(0,0)` ist und man daher keinen Offset einführen muss. Die Ausgabe ist ähnlich wie oben nur, dass der Pfeil fehlt.
\documentclass[tikz]{standalone}
\usetikzlibrary{calc}
\usepackage{mathtools}
\begin{document}
\begin{tikzpicture}[
dot/.style={draw,fill=#1,circle,inner sep=1pt},
dot/.default=black,
]
\draw[help lines] (-1.5,-0.75) grid (2.5,3.75);
\draw[fill=blue] (0,0) node[dot=blue,label={below:$(x_1,y_1)$}] {} --
(1,3) node[dot=blue,label={above:$(x_2,y_2)$}] {};
\path let \p1 = (0,0),
\p2 = (1,3),
\n1 = {veclen(\x1,\x2)},
\n2 = {veclen(\y1,\y2)}
in (\n1/3,\n2/3) node[dot=red] {1}
(2*\n1/3,2*\n2/3) node[dot=red] {2};
% Abstand Geraden-Endpunkte
\draw (0.5,-1.2) node {$\text{Abstand}=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$};
\end{tikzpicture}
\end{document}
# decorations.markings
Die `decorations.markings` Bibliothek bietet die Option `mark=at position <pos> with <code>` wobei `<pos>` verschiedene Bedeutungen haben kann, z.B. eine explizite Länge mit Einheit oder auch wie im Beispiel unten ein Bruchteil der Länge des Pfades. Der Parameter `<code>` setzt wieder die Nodes. Bild analog zu oben.
\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.markings}
\usepackage{mathtools}
\begin{document}
\begin{tikzpicture}[
dot/.style={draw,fill=#1,circle,inner sep=1pt},
dot/.default=black,
]
\draw[help lines] (-1.5,-0.75) grid (2.5,3.75);
\draw[fill=blue,decoration={%
markings,
mark=at position .333 with {\node[dot=red] {1};},
mark=at position .666 with {\node[dot=red] {2};}
},postaction=decorate]
(0,0) node[dot=blue,label={below:$(x_1,y_1)$}] {} --
(1,3) node[dot=blue,label={above:$(x_2,y_2)$}] {};
% Abstand Geraden-Endpunkte
\draw (0.5,-1.2) node {$\text{Abstand}=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}$};
\end{tikzpicture}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/u_176.png