von Münzi » Mi 5. Mär 2014, 19:44
Hallo mal wieder,
nach längerer Abstinenz habe ich mal wieder ein kleines Anliegen an euch. Ich nutze TIKZ um Fließbilder anzulegen. Dabei kommt es häufiger dazu, dass sich zwei Linien schneiden. Am Schnittpunkt wird zur besseren Unterscheidung der Linien meist die eine Linie mit einem Bogen über die andere gezeichnet. Das konnte bisher mit der Lösung aus
http://tex.stackexchange.com/questions/ ... ed-in-tikz erreicht werden.

Das oben gezeigte Bild wird dabei durch folgenden Code erreicht:
\documentclass[tikz]{standalone}
\usetikzlibrary{intersections,backgrounds}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\tikzset{
connect/.style args={(#1) to (#2) over (#3) to (#4) by #5}{
insert path={
\pgfextra{
\pgfinterruptpath
\path [name path=a] (#1) -- (#2);
\path [name path=b] (#3) -- (#4);
\path [name intersections={of=a and b,by=inter}];
\endpgfinterruptpath
}
let \p1=($(#1)-(inter)$), \n1={veclen(\x1,\y1)},
\n2={atan2(\x1,\y1)}, \n3={abs(#5)}, \n4={#5>0 ?180:-180} in
(#1) -- ($(#1)!\n1-\n3!(inter)$)
arc (\n2:\n2+\n4:\n3) -- (#2)
}
},
}
\begin{pgfonlayer}{background}
\draw[fill=yellow] (0.25,0.5) rectangle (1.75,1.5);
\end{pgfonlayer}
\draw (0,0) -- (2,2);
\draw [red, very thick, connect={(0,2) to (2,0) over (0,0) to (2,2) by -5pt}];
\draw [connect={(0,2) to (2,0) over (0,0) to (2,2) by 3pt}];
\end{tikzpicture}
\end{document}
Allerdings musste ich heute nach einem Update meiner Pakete feststellen, dass sich etwas an der Berechnung verändert haben muss. Der gleiche Code wie oben erzeugt nun folgendes Bild:
und in meinem konkreten Fall verwandelt sich der Output von

zu

.
Weiß jemand zufällig woran das liegt (ich tippe auf eine Veränderung der Intersection-Bibliothek von TikZ) und wie ich das alte Ergebnis zurück bekomme?
Beste Grüße und schonmal vielen Dank!
Hallo mal wieder,
nach längerer Abstinenz habe ich mal wieder ein kleines Anliegen an euch. Ich nutze TIKZ um Fließbilder anzulegen. Dabei kommt es häufiger dazu, dass sich zwei Linien schneiden. Am Schnittpunkt wird zur besseren Unterscheidung der Linien meist die eine Linie mit einem Bogen über die andere gezeichnet. Das konnte bisher mit der Lösung aus [url]http://tex.stackexchange.com/questions/111660/intersection-of-2-lines-not-really-connected-in-tikz[/url] erreicht werden.
[img]http://i.stack.imgur.com/e1RrW.png[/img]
Das oben gezeigte Bild wird dabei durch folgenden Code erreicht:
[code]\documentclass[tikz]{standalone}
\usetikzlibrary{intersections,backgrounds}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\tikzset{
connect/.style args={(#1) to (#2) over (#3) to (#4) by #5}{
insert path={
\pgfextra{
\pgfinterruptpath
\path [name path=a] (#1) -- (#2);
\path [name path=b] (#3) -- (#4);
\path [name intersections={of=a and b,by=inter}];
\endpgfinterruptpath
}
let \p1=($(#1)-(inter)$), \n1={veclen(\x1,\y1)},
\n2={atan2(\x1,\y1)}, \n3={abs(#5)}, \n4={#5>0 ?180:-180} in
(#1) -- ($(#1)!\n1-\n3!(inter)$)
arc (\n2:\n2+\n4:\n3) -- (#2)
}
},
}
\begin{pgfonlayer}{background}
\draw[fill=yellow] (0.25,0.5) rectangle (1.75,1.5);
\end{pgfonlayer}
\draw (0,0) -- (2,2);
\draw [red, very thick, connect={(0,2) to (2,0) over (0,0) to (2,2) by -5pt}];
\draw [connect={(0,2) to (2,0) over (0,0) to (2,2) by 3pt}];
\end{tikzpicture}
\end{document}[/code]
Allerdings musste ich heute nach einem Update meiner Pakete feststellen, dass sich etwas an der Berechnung verändert haben muss. Der gleiche Code wie oben erzeugt nun folgendes Bild:
[img]http://img5.fotos-hochladen.net/uploads/intersection4nibms17dc.jpg[/img]
und in meinem konkreten Fall verwandelt sich der Output von
[img]http://www.fotos-hochladen.net/uploads/intersection2wkaiq5rcbj.png[/img]
zu
[img]http://img5.fotos-hochladen.net/uploads/intersection30l6hk51txr.png[/img].
Weiß jemand zufällig woran das liegt (ich tippe auf eine Veränderung der Intersection-Bibliothek von TikZ) und wie ich das alte Ergebnis zurück bekomme?
Beste Grüße und schonmal vielen Dank!