Die mit let erhaltenen \x1 und \x2 sind Punktregister. Zum Beispiel enthält \x1 in deinem Beispiel den Wert 0pt.
Code:
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections,calc}
\tikzset{kreis/.style={draw,circle,minimum size=0.1cm,inner sep=0pt,fill=#1}}
\begin{document}
\begin{tikzpicture}
\draw[name path=Rand](0,0)--(1.5,0)--(2,1)--(1,2)--(0,1.8)--cycle;
\path[domain=0:2,samples=100,variable=\xx,name path=Funktion]plot({\xx},{sin(deg(\xx))+.8});
\draw[name intersections={of=Funktion and Rand},variable=\xx,samples=100]
let \p1 = (intersection-1) ,
\p2 = (intersection-2)
in
\pgfextra{\pgfmathsetmacro\s{\x1/1cm}\pgfmathsetmacro\e{\x2/1cm}}
node[kreis=blue,label=west:\s] at (\p1){}
plot[domain=\s:\e] ({\xx},{sin(deg(\xx))+.8})
node[kreis=green,label=east:\e] {} ;
\end{tikzpicture}
\end{document}
Auch beim ersten Plotten der Funktion würde ich eine domain vorgeben. Denn auch wenn dieser nicht gezeichnet wird, wird er trotzdem bei der Ermittlung der Größe der Zeichnung berücksichtigt.
Außerdem ist trotzdem mal noch ein Vorschlag mit \clip:
Code:
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\clip[name path=Rand][preaction=draw](0,0)--(1.5,0)--(2,1)--(1,2)--(0,1.8)--cycle;
\draw[samples=100,variable=\xx,name path=Funktion]plot({\xx},{sin(deg(\xx))+.8});
\path[name intersections={of=Funktion and Rand,name=i}];
\end{scope}
\draw[fill=blue](i-1)circle[radius=.1cm];
\draw[fill=green](i-2)circle[radius=.1cm];
\end{tikzpicture}
\end{document}
Gruß
Elke
Lesezeichen