Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

17 Okt '15, 10:23

saputello's gravatar image

saputello
11.1k174365

Die einfachste Methode, das ganze elliptisch zu bekommen, besteht darin, für die x- und die y-Richtung unterschiedliche Skalierungsfaktoren zu verwenden, beispielsweise: \documentclass[ngerman]{article} \usepackage{babel} \usepackage{translator} \usepackage{tikz} \usetikzlibrary{calendar,shadings} \renewcommand*{\familydefault}{\sfdefault} \colorlet{winter}{blue} \colorlet{spring}{green!60!black} \colorlet{summer}{orange} \colorlet{fall}{red} % A counter, since TikZ is not clever enough (yet) to handle % arbitrary angle systems. \newcount\mycount \begin{document} \pagestyle{empty} \year=2016 %Jahr festlegen \begin{tikzpicture}[xscale=1.2,yscale=1.6, remember picture,overlay,shift={(current page.center)}, transform shape, every day/.style={anchor=mid,node font=\tiny,minimum width=1ex}] \node[draw, densely dashed, circle,shading=radial,outer color=lightgray,inner color=white, minimum width=15cm] {\textcolor{blue!80!black}{\Huge\the\year}}; \foreach \month/\monthcolor in {1/winter,2/winter,3/spring,4/spring,5/spring,6/summer, 7/summer,8/summer,9/fall,10/fall,11/fall,12/winter} { % Computer angle: \mycount=\month \advance\mycount by -1 \multiply\mycount by 30 \advance\mycount by -90 \shadedraw[shading=radial,outer color=\monthcolor!30,middle color=white, inner color=white,draw=none] (\the\mycount:5.4cm) circle(1.4cm); % The actual calendar \calendar at (\the\mycount:5.4cm) [ dates=\the\year-\month-01 to \the\year-\month-last, day code={% \path node[every day]{\tikzdaytext}+(180+\the\mycount:0.22) node[every day,scale=.75]{\pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}}; } ] if (day of month=1) {{\color{\monthcolor!50!black}\tikzmonthcode}} if (Sunday) [red] if (all) { % Again, compute angle \mycount=1 \advance\mycount by -\pgfcalendarcurrentday \multiply\mycount by 11 \advance\mycount by 90 \pgftransformshift{\pgfpointpolar{\mycount}{1.23cm}}}; } \end{tikzpicture} \end{document} ![Ellipse hochkant][1] oder \documentclass[landscape,ngerman]{article} \usepackage{babel} \usepackage{translator} \usepackage{tikz} \usetikzlibrary{calendar,shadings} \renewcommand*{\familydefault}{\sfdefault} \colorlet{winter}{blue} \colorlet{spring}{green!60!black} \colorlet{summer}{orange} \colorlet{fall}{red} % A counter, since TikZ is not clever enough (yet) to handle % arbitrary angle systems. \newcount\mycount \begin{document} \pagestyle{empty} \year=2016 %Jahr festlegen \begin{tikzpicture}[yscale=1.2,xscale=1.6, remember picture,overlay,shift={(current page.center)}, transform shape, every day/.style={anchor=mid,node font=\tiny,minimum width=1ex}] \node[draw, densely dashed, circle,shading=radial,outer color=lightgray,inner color=white, minimum width=15cm] {\textcolor{blue!80!black}{\Huge\the\year}}; \foreach \month/\monthcolor in {1/winter,2/winter,3/spring,4/spring,5/spring,6/summer, 7/summer,8/summer,9/fall,10/fall,11/fall,12/winter} { % Computer angle: \mycount=\month \advance\mycount by -1 \multiply\mycount by 30 \advance\mycount by -90 \shadedraw[shading=radial,outer color=\monthcolor!30,middle color=white, inner color=white,draw=none] (\the\mycount:5.4cm) circle(1.4cm); % The actual calendar \calendar at (\the\mycount:5.4cm) [ dates=\the\year-\month-01 to \the\year-\month-last, day code={% \path node[every day]{\tikzdaytext}+(180+\the\mycount:0.22) node[every day,scale=.75]{\pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}}; } ] if (day of month=1) {{\color{\monthcolor!50!black}\tikzmonthcode}} if (Sunday) [red] if (all) { % Again, compute angle \mycount=1 \advance\mycount by -\pgfcalendarcurrentday \multiply\mycount by 11 \advance\mycount by 90 \pgftransformshift{\pgfpointpolar{\mycount}{1.23cm}}}; } \end{tikzpicture} \end{document} ![Ellipse quer][2] Will man hingegen für die Monate weiterhin Kreise verwenden und lediglich den Hintergrund elliptisch haben, so muss man einige zusätzliche Berechnungen anstellen: \documentclass[landscape,ngerman]{article} \usepackage{babel} \usepackage{translator} \usepackage{tikz} \usetikzlibrary{calendar,shadings} \renewcommand*{\familydefault}{\sfdefault} \colorlet{winter}{blue} \colorlet{spring}{green!60!black} \colorlet{summer}{orange} \colorlet{fall}{red} % A counter, since TikZ is not clever enough (yet) to handle % arbitrary angle systems. \newcount\mycount \newlength\mylength \begin{document} \pagestyle{empty} \year=2016 %Jahr festlegen \begin{tikzpicture}[scale=1.35, remember picture,overlay,shift={(current page.center)}, transform shape, every day/.style={anchor=mid,node font=\tiny,minimum width=1ex}] \node[xscale=1.2,draw, densely dashed, circle,shading=radial,outer color=lightgray,inner color=white, minimum width=15cm] {\textcolor{blue!80!black}{\Huge\the\year}}; \foreach \month/\monthcolor in {1/winter,2/winter,3/spring,4/spring,5/spring,6/summer, 7/summer,8/summer,9/fall,10/fall,11/fall,12/winter} { % Computer angle: \mycount=\month \advance\mycount by -1 \multiply\mycount by 30 \advance\mycount by -90 \pgfmathparse{(abs(sin((\month-1)*30))*0.2+1} \shadedraw[shading=radial,outer color=\monthcolor!30,middle color=white, inner color=white,draw=none] (\the\mycount:\pgfmathresult*5.4) circle(1.4cm); % The actual calendar \setlength{\mylength}{\pgfmathresult\dimexpr 5.4cm\relax} \calendar at (\the\mycount:\mylength) [ dates=\the\year-\month-01 to \the\year-\month-last, day code={% \path node[every day]{\tikzdaytext}+(180+\the\mycount:0.22) node[every day,scale=.75]{\pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}}; } ] if (day of month=1) {{\color{\monthcolor!50!black}\tikzmonthcode}} if (Sunday) [red] if (all) { % Again, compute angle \mycount=1 \advance\mycount by -\pgfcalendarcurrentday \multiply\mycount by 11 \advance\mycount by 90 \pgftransformshift{\pgfpointpolar{\mycount}{1.23cm}}}; } \end{tikzpicture} \end{document} ![Kreise in einer Ellipse][3] [1]: http://texwelt.de/wissen/upfiles/test17_2.png [2]: http://texwelt.de/wissen/upfiles/test18_2.pnghttp://texwelt.de/wissen/upfiles/test18_2.png [3]: http://texwelt.de/wissen/upfiles/test19_2.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

17 Okt '15, 09:48

saputello's gravatar image

saputello
11.1k174365

Die einfachste Methode, das ganze elliptisch zu bekommen, besteht darin, für die x- und die y-Richtung unterschiedliche Skalierungsfaktoren zu verwenden, beispielsweise: \documentclass[ngerman]{article} \usepackage{babel} \usepackage{translator} \usepackage{tikz} \usetikzlibrary{calendar,shadings} \renewcommand*{\familydefault}{\sfdefault} \colorlet{winter}{blue} \colorlet{spring}{green!60!black} \colorlet{summer}{orange} \colorlet{fall}{red} % A counter, since TikZ is not clever enough (yet) to handle % arbitrary angle systems. \newcount\mycount \begin{document} \pagestyle{empty} \year=2016 %Jahr festlegen \begin{tikzpicture}[xscale=1.2,yscale=1.6, remember picture,overlay,shift={(current page.center)}, transform shape, every day/.style={anchor=mid,node font=\tiny,minimum width=1ex}] \node[draw, densely dashed, circle,shading=radial,outer color=lightgray,inner color=white, minimum width=15cm] {\textcolor{blue!80!black}{\Huge\the\year}}; \foreach \month/\monthcolor in {1/winter,2/winter,3/spring,4/spring,5/spring,6/summer, 7/summer,8/summer,9/fall,10/fall,11/fall,12/winter} { % Computer angle: \mycount=\month \advance\mycount by -1 \multiply\mycount by 30 \advance\mycount by -90 \shadedraw[shading=radial,outer color=\monthcolor!30,middle color=white, inner color=white,draw=none] (\the\mycount:5.4cm) circle(1.4cm); % The actual calendar \calendar at (\the\mycount:5.4cm) [ dates=\the\year-\month-01 to \the\year-\month-last, day code={% \path node[every day]{\tikzdaytext}+(180+\the\mycount:0.22) node[every day,scale=.75]{\pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}}; } ] if (day of month=1) {{\color{\monthcolor!50!black}\tikzmonthcode}} if (Sunday) [red] if (all) { % Again, compute angle \mycount=1 \advance\mycount by -\pgfcalendarcurrentday \multiply\mycount by 11 \advance\mycount by 90 \pgftransformshift{\pgfpointpolar{\mycount}{1.23cm}}}; } \end{tikzpicture} \end{document} ![Ellipse hochkant][1] oder \documentclass[landscape,ngerman]{article} \usepackage{babel} \usepackage{translator} \usepackage{tikz} \usetikzlibrary{calendar,shadings} \renewcommand*{\familydefault}{\sfdefault} \colorlet{winter}{blue} \colorlet{spring}{green!60!black} \colorlet{summer}{orange} \colorlet{fall}{red} % A counter, since TikZ is not clever enough (yet) to handle % arbitrary angle systems. \newcount\mycount \begin{document} \pagestyle{empty} \year=2016 %Jahr festlegen \begin{tikzpicture}[yscale=1.2,xscale=1.6, remember picture,overlay,shift={(current page.center)}, transform shape, every day/.style={anchor=mid,node font=\tiny,minimum width=1ex}] \node[draw, densely dashed, circle,shading=radial,outer color=lightgray,inner color=white, minimum width=15cm] {\textcolor{blue!80!black}{\Huge\the\year}}; \foreach \month/\monthcolor in {1/winter,2/winter,3/spring,4/spring,5/spring,6/summer, 7/summer,8/summer,9/fall,10/fall,11/fall,12/winter} { % Computer angle: \mycount=\month \advance\mycount by -1 \multiply\mycount by 30 \advance\mycount by -90 \shadedraw[shading=radial,outer color=\monthcolor!30,middle color=white, inner color=white,draw=none] (\the\mycount:5.4cm) circle(1.4cm); % The actual calendar \calendar at (\the\mycount:5.4cm) [ dates=\the\year-\month-01 to \the\year-\month-last, day code={% \path node[every day]{\tikzdaytext}+(180+\the\mycount:0.22) node[every day,scale=.75]{\pgfcalendarweekdayshortname{\pgfcalendarcurrentweekday}}; } ] if (day of month=1) {{\color{\monthcolor!50!black}\tikzmonthcode}} if (Sunday) [red] if (all) { % Again, compute angle \mycount=1 \advance\mycount by -\pgfcalendarcurrentday \multiply\mycount by 11 \advance\mycount by 90 \pgftransformshift{\pgfpointpolar{\mycount}{1.23cm}}}; } \end{tikzpicture} \end{document} ![Ellipse quer][2] [1]: http://texwelt.de/wissen/upfiles/test17_2.png [2]: http://texwelt.de/wissen/upfiles/test18_2.png