PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tikz ursprüngliche linie zum Teil überzeichnen



Fite
21-10-2013, 14:36
Hallo,

ich möchte gerne die gestrichelte Linie mit mit einer durchgehenden Linie überzeichnen. Allerdings soll die durchgehenden Linie nur 80% der Länge der gestrichelten Linie überdecken (vom Ursprung aus gesehen). Die 80% sind aber nur ein fiktiver Wert, mir geht es mehr um das "wie geht das überhaupt". Gibt es da irgendeinen Befehl für so etwas?

VG
Fite



\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz,pgfplots}


\begin{document}
\begin{figure}[htbp]

\begin{tikzpicture}
% Koordinatensystem
\draw [->,>=latex,very thick] (-3,0)--(4,0) node[below left] {$\varepsilon$};
\draw [->,>=latex,very thick] (0,-4)--(0,4) node[below left] {$\sigma$};
% Linie
\path [draw, thick, dashed] (0,0) to[out=80,in=190] (4,3);
\end{tikzpicture}

\end{figure}
\end{document}

Stefan_K
21-10-2013, 16:07
Hallo Fite,

Du könntest die Linie nochmal genauso, jedoch mit der shorten-Option zeichnen, wie z.B. hier: Wie kann ich TikZ-Pfeile kürzer machen? (http://texwelt.de/wissen/fragen/825/wie-kann-ich-tikz-pfeile-kurzer-machen) Hinter dem Link, auf der Seite, gibt es auch TikZ-Experten, die Fragen beantworten - siehe TikZ-Fragenliste (http://texwelt.de/wissen/themen/tikz/) - alle beantwortet, m.W. alle gelöst.

Stefan

Fite
21-10-2013, 19:13
Vielen Dank! Der shorten-Befehl ist erst mal super. Allerdings legt er trotzdem (auch in dem Beispiel vom Link), die Pfeile oder Linien nicht exakt übereinander. Siehe hier:



\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz,pgfplots}


\begin{document}
\begin{figure}[htbp]

\begin{tikzpicture}
% Koordinatensystem
\draw [->,>=latex,very thick] (-3,0)--(4,0) node[below left] {$\varepsilon$};
\draw [->,>=latex,very thick] (0,-4)--(0,4) node[below left] {$\sigma$};
% Linie
\path [draw, thick, dashed] (0,0) to[out=80,in=190] (4,3);
\path [draw, thick, shorten >=1cm] (0,0) to[out=80,in=190] (4,3);
\end{tikzpicture}

\end{figure}
\end{document}


Gibts da noch nen Trick?

VG
Fite

Stefan_K
21-10-2013, 20:01
Hallo Fite,

das liegt m.E. daran, dass der gleiche Eingangswinkel mit in=190 verwendet wird. Wenn man die gebogene Linie verkürzt, dann ist am neuen Endpunkt der Winkel etwas anders. Ich wette, Qrrbrbirlbel (http://www.texwelt.de/wissen/benutzer/56/qrrbrbirlbel) weiß eine perfekte Lösung. Mir fiel bei der Frage das ähnliche Thema Kreisbogen zwischen zwei vorgegebenen Punkten (http://www.texwelt.de/wissen/fragen/1490/wie-kann-ich-mit-tikz-einen-kreisbogen-zwischen-zwei-punkten-zeichnen) ein, und wenn Du da seine tolle Lösung mit der super Erklärung siehst, verstehst Du was ich meine. :) Er kennt Vorhandenes und zaubert bei Bedarf einfach was Neues.

Stefan

esdd
22-10-2013, 08:39
Hier ist mal noch ein alternativer Vorschlag. Der leistet zwar das gewünschte, allerdings muss der Pfad für das Beschneiden mit \clip abhängig von der Kurve festgelegt werden:


\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
% Koordinatensystem
\draw [->,>=latex,very thick] (-3,0)--(4,0) node[below left] {$\varepsilon$};
\draw [->,>=latex,very thick] (0,-4)--(0,4) node[below left] {$\sigma$};
% Linie
\draw [thick, dashed] (0,0) to[out=80,in=190]coordinate[pos=0.8](C) (4,3);
\begin{scope}
\clip(0,0)rectangle(C);
\draw[thick] (0,0) to[out=80,in=190] (4,3);
\end{scope}
\end{tikzpicture}

\end{document}

Gruß
Elke

Stefan_K
22-10-2013, 15:30
Hallo Fite,

Elke hat das Problem freundlicherweise auf der TeXwelt (http://texwelt.de) gepostet, dort gibt es nun auch eine Lösung, bei der man die Kurve nur einmal angeben braucht und die Länge des durchgezogenen Teils mit übergibt: Teilweise gestrichelte Kurve (http://texwelt.de/wissen/fragen/2144/teilweise-gestrichelte-kurve).

Danke Elke!

Stefan

PS: Du verwendest pgfplots hier nicht, brauchst es also nicht zu laden. Wenn Du dennoch sehen möchtest, was das kann: pgfplots Beispiele (http://pgfplots.net).