PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Parabeln mit tikz falsch



rstuby
13-05-2014, 11:01
\documentclass{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}


\begin{document}

\begin{tikzpicture}
\draw[thick] plot[domain=-2.6:1] (\x^2,\x); %node[right,above] {$f(x) = \sqrt{5\cdot x}$}
\draw[thick] plot[domain=-4:1] (0.5*\x^2+1.2,\x);
\draw[thick] plot[domain=-5.25:1] (0.3333*\x^2+2.4,\x-.5);
\draw[thick] plot[domain=-5:1] (0.25*\x^2+3.6,\x-1);
\draw[thick] plot[domain=-4.5:-2] (0.2*\x^2+4.8,\x-1.5);

\draw[thick] plot[domain=-2.6:0] (\x^2,\x+.5); %node[right,above] {$f(x) = \sqrt{5\cdot x}$}
\draw[thick] plot[domain=-4:0] (0.5*\x^2+1.2,\x-.5);
\draw[thick] plot[domain=-5.25:0] (0.3333*\x^2+2.4,\x-1);
\draw[thick] plot[domain=-4.5:0] (0.25*\x^2+3.6,\x-1.5);
\draw[thick] plot[domain=-4:-2] (0.2*\x^2+4.8,\x-2);
\end{tikzpicture}
\end{document}


Hallo! Ich möchte eine Art "Treppenstufen" aus nach links geöffneten Parabeln zeichnen. Mich wundert, dass der untere Teil jeder Parabel hier meinem Plan entspricht, denn eigentlich fehlt doch ein Minuszeichen. Der obere Teil ist jedoch jeweils logisch-mathematisch richtig, für mein Bild aber falsch! Wieso zeichnet tikz keine quadratischen Parabeln, sondern etwas, was eher an eine kubische Funktion erinnert?

Später hätte ich dann gern noch die "senkrechten" Seiten der Treppenstufen schwarz oder dunkelgrau eingefärbt und einen zweizeiligen Text mittig über das Bild gelegt, da brauche ich auch noch mal Hilfe. Aber erst mal muss ich mit der Mathematik klar kommen!

u_fischer
13-05-2014, 13:17
Ich glaube, tikz kann die Exponenten nicht richtig, könnte ein Bug sein. Benutze \x*\x statt \x^2. Oder ({pow(\x,2)},\x)

Und eine kurze Suche erbrachte, dass folgende Syntax bei Exponenten notwendig ist: ({(\x)^2},\x);

http://sourceforge.net/p/pgf/bugs/147/

rstuby
13-05-2014, 15:14
Danke! Das funktioniert schon mal. Jetzt lese ich erst mal ein bisschen in der Doku...

Stefan_K
13-05-2014, 18:19
Ich würde pgfplots verwenden für Plots, auch innerhalb von TikZ-Zeichnungen. Das lässt sich integrieren, selbst mit gleichem Koordinatenursprung und Abmessungen und ohne eigene sichtbare Achsen. Ich habe gerade heute hier ein Beispiel gepostet: Polar Plots in Tikz (http://latex-community.org/forum/viewtopic.php?f=45&t=24762).

pgfplots hat kein Problem mit der Syntax x^2, man kann mit Schnitten von Kurven arbeiten und auch wie gewünscht Bereiche zwischen Plot-Kurven füllen. Mit TikZ kann man zusätzlich in der Grafik arbeiten.

Hier wird übrigens auch gern und viel über pgfplots gesprochen, und viele Beispiele (auch mit Füllen und Schnitten und Clippen) sind da zu sehen: pgfplots Fragen (http://texwelt.de/wissen/themen/pgfplots/). Und Top-Thema ist da natürlich TikZ (http://texwelt.de/wissen/themen/tikz/). ;-)

Stefan

rstuby
13-05-2014, 19:34
Vielen Dank, Stefan! Ich dachte, pgfplots wäre direkt nur mit Koordinatensystem und so.
Mein Logo sieht jetzt erst mal so aus:
\documentclass{scrbook}
\usepackage[utf8]{inputenc}
\usepackage[T1,T2A]{fontenc}
\usepackage[ngerman,russian]{babel}
\usepackage{tikz}
\usetikzlibrary{shadows}
\usepackage{paratype}
\pagestyle{empty}

\begin{document}

\begin{tikzpicture}%[fill=white,even odd rule]

\clip (5,1.25) rectangle (-7,-7) ;
\begin{scope}
\draw[fill=black] (-2,1) -- plot[domain=-4:0] (-0.25*\x*\x+4.8,\x-4) -- (4.8,-4) -- (4.8,-3);
\draw[fill=white] plot[domain=-5:5] (-0.25*\x*\x+4.8,\x-3);
\end{scope}
\begin{scope}
\draw[fill=black] (-4,1) -- plot[domain=-5:0] (-0.3*\x*\x+3.6,\x-3) -- (3.6,-3) -- (3.6,-2);
\draw[fill=white] plot[domain=-6:6] (-0.3*\x*\x+3.6,\x-2);
\end{scope}
\begin{scope}
\draw[fill=black] (-5,1) -- plot[domain=-5.35:0] (-0.4*\x*\x+2.4,\x-2) -- (2.4,-2) -- (2.4,-1);
\draw[fill=white] plot[domain=-5.35:2.5] (-0.4*\x*\x+2.4,\x-1);
\end{scope}
\begin{scope}
\draw[fill=black] (-6,1) -- plot[domain=-4.12:0] (-0.6*\x*\x+1.2,\x-1) -- (1.2,-1) -- (1.2,0);
\draw[fill=white] plot[domain=-4.12:5] (-0.6*\x*\x+1.2,\x);
\end{scope}
\begin{scope}
\draw[fill=black] (-6,1) -- plot[domain=-3:0] (-\x*\x,\x) -- (0,0) -- (0,1);
\draw[fill=white] plot[domain=-3:3] (-\x*\x,\x+1);
\end{scope}
\draw[opacity=0] (5,1.25) rectangle (-7,-7) node[align=center,midway,opacity=1,scale=6]{\bfseries Ступени \\ \bfseries жизни} node[align=center,midway,opacity=1,scale=6,xshift=-.05em,yshift=.025 em]{\bfseries\color{white} Ступени \\ \bfseries\color{white} жизни};
\end{tikzpicture}
\end{document}

Daran feilen werde ich bestimmt noch, aber ob ich es noch einmal komplett umarbeite, um pgfplots zu benutzen, ist die Frage.
Ich könnte mir vorstellen, eine Schleife (oder mehrere) zu bauen, mit deren Hilfe ohne viel mehr Code die Anzahl der Stufen zu erhöhen, und dann wäre die Schrift besser sichtbar.

rstuby
15-05-2014, 19:34
Hallo, jetzt habe ich das Logo noch etwas verändert und eine Schleife geschrieben, aber bisher ohne pgfplots. Komischerweise werden die Parabeln am Scheitelpunkt ziemlich grob, "eckig" gezeichnet:

\documentclass{scrbook}
%\usepackage[utf8]{inputenc}
%\usepackage[T1,T2A]{fontenc}
%\usepackage[ngerman,russian]{babel}
\usepackage{tikz}
\usetikzlibrary{shadows}
%\usepackage{paratype}
\pagestyle{empty}

\begin{document}
\begin{tikzpicture}
\clip (5,2.25) rectangle (-7,-6) ;
\draw[fill=black!80!white] (5,2.25) rectangle (-7,-6);
\foreach \i in {-1,...,6}
{
\draw[fill=black!80!white] (-\i-3,1) -- plot[domain=-6:0] (-1*\x*\x-\i/6*\x*\x+5-1.2*\i,\x-4+\i) -- (5-1.2*\i,-4+\i) -- (5-1.2*\i,-3+\i);
\draw[fill=white] plot[domain=-5:5] (-1*\x*\x-\i/6*\x*\x+5-1.2*\i,\x-3+\i);
}

\end{tikzpicture}
\end{document}
Woran liegt das und wie kann man das verhindern? Doch auf pgfplots umsteigen?
Ach, und noch eine Frage: kann man das Bild gleich zugeschnitten erzeugen oder ist es besser, immer hinterher pdfcrop darauf anzuwenden?

Stefan_K
15-05-2014, 19:47
Du kannst einfach die Zahl der samples erhöhen durch die gleichnamige Option, z.B.:


\draw[fill=white] plot[domain=-5:5,samples=300] (-1*\x*\x-\i/6*\x*\x+5-1.2*\i,\x-3+\i);

Statt pdfcrop kannst Du auch gleich die standalone-Klassen verwenden (machen die Beispiele auf pgfplots.net (http://pgfplots.net)) oder das preview-package (machen die älteren Beispiele auf texample.net (http://texample.net)). Man sieht es bei letzterem, wenn man dem Link zu den Quelldateien folgt, die Galerie lässt das unwesentliche in der Darstellung weg. Auf TeXwelt gerade aktiv: Wie kann ich mir mit dem Paket preview eine Bilddatei ausgeben lassen? (http://texwelt.de/wissen/fragen/4105/wie-kann-ich-mir-mit-dem-paket-preview-eine-bilddatei-ausgeben-lassen) Übrigens sind auch dort Deine Fragen und Antworten sehr willkommen. ;-)

Stefan

rstuby
15-05-2014, 19:55
Danke, das funktioniert beides super! (samples erhöhen und standalone)
Ein weiteres Forum will ich mir momentan allerdings nicht antun. Hier werde ich aber in absehbarer Zeit wieder aktiver, weil ich (höchstwahrscheinlich) wieder ein größeres Projekt habe.

Stefan_K
15-05-2014, 20:25
Antun? :-) Bei dem Wort fühle ich mich hier so. Mir überdeckt die Werbung den Text, so sieht ein aktueller Post auf mrunix bei mir (mit Windows) aus:

http://texwelt.de/upfiles/mrunix.png

Ich lese und schreibe hier, wenn ich Ubuntu verwende, da erscheint die Werbung nicht (beide Male Firefox, vllt. kann der da flash nicht, k.A.). Vielleicht bist Du auch gesegnet und siehst die Werbung nicht. Dann nur als Info :-) und nicht erfunden, siehe obersten Post im Mitgliederforum (http://www.mrunix.de/forums/forumdisplay.php?s=&f=45&page=1&pp=25&sort=lastpost&order=desc&daysprune=365) (also über den zig Werbeposts :eek: ). Da ich sehe, dass im Forum seit vielen Jahren technisch nichts passiert, außer Werbung-Einbauen zum Geld-Rausziehen, und regelmäßige Datenbank-Fehler, und nicht auf Zukunft hoffe (und meine 3500 Beiträge vllt. irgendwann weg sind), habe ich selber TeXwelt gestartet. Werbefrei, schnell, qualitätssortiert, fein Themen-indiziert. Und fühl mich da wohl, und zwar nicht wegen der Technik sondern weil da so nette TeX-Freunde so gute Beiträge liefern, dass ich mich geehrt fühle, die Plattform bereitstellen zu dürfen. Sorry für den Rant, ich seh' nur so viele gute Beiträge von Dir und dachte gleich, das wäre eine Bereicherung für das aufbereitende TeXwelt-Archiv. Tschuldige für die Werbung. Doch vllt. macht's Dir da ja auch Laune. :D

Stefan

rstuby
16-05-2014, 07:54
Ich meinte die Anzahl der Foren und nicht die Qualität von jedem einzelnen.
Aber um die Werbung zu verstecken, musst du bloß mit NoScript die Skripte von doubleclick.net verbieten. Allerdings bleibt im Text ein Rechteck oder Quadrat links oben ausgespart.