Die Mathe-Redaktion - 25.04.2019 02:19 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz / Top 15
ListenpunktWerde Mathe-Millionär!
ListenpunktAnmeldung MPCT Sept.
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 201 Gäste und 7 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von Stefan_K
Matroids Matheplanet Forum Index » Textsatz mit LaTeX » TikZ Programm für Sechseckparkett
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule TikZ Programm für Sechseckparkett
Slash
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.03.2005
Mitteilungen: 7371
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-03-15


Hi,

ich suche jemand, der mir ein TikZ Programm schreiben kann, dass die Ebene mit regelmäßigen Sechsecken parkettiert (nur Kanten), und zwar in Form einer Spirale im Uhrzeigersinn.

Ich kann das zwar mit Delphi machen (mein einziges Programmierwerkzeug für solche grafischen Dinge), aber für TikZ habe ich nicht den geringsten Ansatz.

Bitte alles hier im Thread posten, damit auch andere etwas davon haben.

Gruß, Slash



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2019-03-15


Ein paar Ansätze:

Die Biblithek 'shapes' hat die gängigen geom. Figuren als Macros.

Ich vermute im Augenblick, dass man das damit ohne Weitere durch "foreach-Schleifen" hinbekommt, nachdem man genügend mit Sachen wie "inner sep" und "minimum width" gekämpft hat.

Mit einer kleinen Restwahrscheinlichkeit sind ggf. irgendwelche Anstandsrechnungen o.ä. mit 'pgfmath' nötig.



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, eingetragen 2019-03-23


confused

<math>
\pgfmathsetmacro{\R}{1} % Umkreisradius
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius
\pgfmathsetmacro{\c}{5} %

\begin{tikzpicture}[%scale=0.7,
font=\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
]

% Test
%\node[Parkett] at (0,0){};
%\node[Parkett] at (0,\r cm){};

\foreach \x in {0,...,6} \foreach \y in {0,...,4}{
\node[Parkett=red] at (\x*1.5*\R,\y*\r){};
}

\foreach \x in {1,3,...,11} \foreach \y in {1,3,...,7}{
\node[Parkett=blue] at (\x*0.75*\R,\y*0.5*\r){};
}

\end{tikzpicture}
</math>

latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
 
\begin{document}
\pgfmathsetmacro{\R}{1} % Umkreisradius 
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius 
 
\begin{tikzpicture}[%scale=0.7,
font=\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6, 
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
}, 
Parkett/.default=black, 
]
 
% Test
%\node[Parkett] at (0,0){};
%\node[Parkett] at (0,\r cm){};
 
\foreach \x in {0,...,2} \foreach \y in {0,...,4}{
\node[Parkett=red] at (\x*1.5*\R,\y*\r){};
}
 
\foreach \x in {1,3,...,5} \foreach \y in {1,3,...,7}{  
\node[Parkett=blue] at (\x*0.75*\R,\y*0.5*\r){};
}
 
\end{tikzpicture}
\end{document}
 



  Profil  Quote  Link auf diesen Beitrag Link
Slash
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.03.2005
Mitteilungen: 7371
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2019-03-23


Danke Newbert, vielleicht kann ich das nutzen um eine Spirale zu erzeugen.




  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2019-03-25


confused


<math>
\pgfmathsetmacro{\R}{1.3} % Umkreisradius
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius

\pgfmathsetmacro{\xMax}{4} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{5} %
\pgfmathsetmacro{\yMin}{-\yMax} %

\def\text{(\X,\Y)}
%\def\text{}

\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={red, line width=2.5*\pgflinewidth},
]
% Rahmen
%\clip[] (-4,4) rectangle (3,-5);


\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett=red] at (\x,\y){\text};\else\fi
\ifnum\Temp=1 \node[Parkett=blue] at (\x,\y){\text};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}


% KoSy
\draw[thick, -latex] (\xMin-\R,0) -- (\xMax+\R,0) node[below]{$x$};
\draw[thick, -latex] (0,\yMin-\R) -- (0,\yMax+\R) node[above]{$y$};

%\foreach \x in {\xMin,...,\xMax} \draw[red, shift={(\x,0)}] (0,-2pt) -- (0,2pt) node[below]{\x};
%%
%\foreach \y in {\yMin,...,\yMax} \draw[red, shift={(0,\y)}] (-2pt,0) -- (2pt,0) node[left]{\y};

% Spirale
\draw[Spirale] (0,0)
-- (-1,1)
-- (0,2)
-- (1,1)
-- (1,-1)
-- (0,-2)
-- (-2,0)
-- (-2,2)
-- (0,4)
-- (2,2)
-- (2,-2)
-- (0,-4)
-- (-3,-1)
-- (-3,3);


\end{tikzpicture}
</math>



<math>
\pgfmathsetmacro{\R}{1.3} % Umkreisradius
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius

\pgfmathsetmacro{\xMax}{4} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{5} %
\pgfmathsetmacro{\yMin}{-\yMax} %

\def\text{(\X,\Y)}
%\def\text{}

\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={red, line width=2.5*\pgflinewidth},
]
% Rahmen
\clip[] (-4,4) rectangle (3,-5);


\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett=red] at (\x,\y){\text};\else\fi
\ifnum\Temp=1 \node[Parkett=blue] at (\x,\y){\text};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}


% KoSy
%\draw[thick, -latex] (\xMin-\R,0) -- (\xMax+\R,0) node[below]{$x$};
%\draw[thick, -latex] (0,\yMin-\R) -- (0,\yMax+\R) node[above]{$y$};

%\foreach \x in {\xMin,...,\xMax} \draw[red, shift={(\x,0)}] (0,-2pt) -- (0,2pt) node[below]{\x};
%%
%\foreach \y in {\yMin,...,\yMax} \draw[red, shift={(0,\y)}] (-2pt,0) -- (2pt,0) node[left]{\y};

% Spirale
\draw[Spirale] (0,0)
-- (-1,1)
-- (0,2)
-- (1,1)
-- (1,-1)
-- (0,-2)
-- (-2,0)
-- (-2,2)
-- (0,4)
-- (2,2)
-- (2,-2)
-- (0,-4)
-- (-3,-1)
-- (-3,3);


\end{tikzpicture}
</math>

latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
 
\begin{document}
\pgfmathsetmacro{\R}{1.3} % Umkreisradius 
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius 
 
\pgfmathsetmacro{\xMax}{4} % 
\pgfmathsetmacro{\xMin}{-\xMax} % 
\pgfmathsetmacro{\yMax}{5} % 
\pgfmathsetmacro{\yMin}{-\yMax} % 
 
\def\text{(\X,\Y)}
%\def\text{}
 
\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm, 
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6, 
inner sep=0pt, 
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
}, 
Parkett/.default=black, 
Spirale/.style={red, line width=2.5*\pgflinewidth},
]
% Rahmen
%\clip[] (-4,4) rectangle (3,-5);
 
 
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax}
 \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett=red] at (\x,\y){\text};\else\fi
\ifnum\Temp=1 \node[Parkett=blue] at (\x,\y){\text};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}
 
 
% KoSy
\draw[thick, -latex] (\xMin-\R,0) -- (\xMax+\R,0) node[below]{$x$};
\draw[thick, -latex] (0,\yMin-\R) -- (0,\yMax+\R) node[above]{$y$};
 
%\foreach \x in {\xMin,...,\xMax} \draw[red, shift={(\x,0)}] (0,-2pt) -- (0,2pt) node[below]{\x};
%%
%\foreach \y in {\yMin,...,\yMax} \draw[red, shift={(0,\y)}] (-2pt,0) -- (2pt,0) node[left]{\y};
 
% Spirale
\draw[Spirale] (0,0) 
-- (-1,1) 
-- (0,2) 
-- (1,1) 
-- (1,-1) 
-- (0,-2) 
-- (-2,0) 
-- (-2,2) 
-- (0,4) 
-- (2,2) 
-- (2,-2) 
-- (0,-4) 
-- (-3,-1) 
-- (-3,3); 
 
 
\end{tikzpicture}
\end{document}





  Profil  Quote  Link auf diesen Beitrag Link
Slash
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.03.2005
Mitteilungen: 7371
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2019-03-25


Zurzeit kann ich mich leider nicht damit beschäftigen, aber die Sechsecke sollen in Form der Spirale gezeichnet werden. Die Spirale steht also an erster Stelle. Das Sechseck werde ich dann durch ein viel komplizierteres Polygon ersetzen. Ich kann aber auf deiner Programmstruktur aufbauen.



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2019-03-25


Um das Ganze kompliziert zu machen:

<math>

\pgfmathsetmacro{\R}{1.4} % Umkreisradius
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius

\pgfmathsetmacro{\xMax}{4} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{5} %
\pgfmathsetmacro{\yMin}{-\yMax} %

\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\bfseries\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={blue!60!brown, very thick},
]
% Rahmen
%\clip[] (-4,4) rectangle (3,-5);


% Spirale
\def\Koordinatenliste{0/0,
-1/1,
0/2,
1/1,
1/-1,
0/-2,
-1/-1,
-2/0,
-2/2,
-1/3,
0/4,
1/3,
2/2,
2/0,
2/-2,
1/-3,
0/-4,
-1/-3,
-2/-2,
-3/-1,
-3/1,
-3/3}

\foreach[count=\n from 0,
evaluate={\m=int(\n-1)},
%evaluate={\M=int(\n+1)}
] \x/\y in \Koordinatenliste{
% Parkett zeichnen
\pgfmathsetmacro\temp{iseven(\n) ? "red" : "green"}
\node[Parkett=\temp] at (\x,\y) {(\x,\y)};
% Spirale zeichnen
\coordinate[label=] (P-\n) at (\x,\y);
\ifnum\m>-1\draw[Spirale] (P-\m) -- (P-\n);\else\fi
}


% KoSy
\draw[thick, -latex] (\xMin-\R,0) -- (\xMax+\R,0) node[below]{$x$};
\draw[thick, -latex] (0,\yMin-\R) -- (0,\yMax+\R) node[above]{$y$};

%\foreach \x in {\xMin,...,\xMax} \draw[red, shift={(\x,0)}] (0,-2pt) -- (0,2pt) node[below]{\x};
%%
%\foreach \y in {\yMin,...,\yMax} \draw[red, shift={(0,\y)}] (-2pt,0) -- (2pt,0) node[left]{\y};
\end{tikzpicture}
</math>

latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
 
\begin{document}
\pgfmathsetmacro{\R}{1.4} % Umkreisradius 
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius 
 
\pgfmathsetmacro{\xMax}{4} % 
\pgfmathsetmacro{\xMin}{-\xMax} % 
\pgfmathsetmacro{\yMax}{5} % 
\pgfmathsetmacro{\yMin}{-\yMax} % 
 
\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm, 
font=\bfseries\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6, 
inner sep=0pt, 
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
}, 
Parkett/.default=black, 
Spirale/.style={blue!60!brown, very thick},
]
% Rahmen
%\clip[] (-4,4) rectangle (3,-5);
 
 
% Spirale
\def\Koordinatenliste{0/0,
-1/1,
0/2,
1/1, 
1/-1, 
0/-2, 
-1/-1,
-2/0, 
-2/2, 
-1/3,
0/4, 
1/3,
2/2, 
2/0,
2/-2, 
1/-3,
0/-4, 
-1/-3,
-2/-2,
-3/-1, 
-3/1,
-3/3}
 
\foreach[count=\n from 0, 
evaluate={\m=int(\n-1)},
%evaluate={\M=int(\n+1)}
] \x/\y in \Koordinatenliste{
% Parkett zeichnen
\pgfmathsetmacro\temp{iseven(\n) ? "red" : "green"}
\node[Parkett=\temp] at (\x,\y) {(\x,\y)};
% Spirale zeichnen
\coordinate[label=] (P-\n) at (\x,\y);
\ifnum\m>-1\draw[Spirale] (P-\m) -- (P-\n);\else\fi
}
 
 
% KoSy
\draw[thick, -latex] (\xMin-\R,0) -- (\xMax+\R,0) node[below]{$x$};
\draw[thick, -latex] (0,\yMin-\R) -- (0,\yMax+\R) node[above]{$y$};
 
%\foreach \x in {\xMin,...,\xMax} \draw[red, shift={(\x,0)}] (0,-2pt) -- (0,2pt) node[below]{\x};
%%
%\foreach \y in {\yMin,...,\yMax} \draw[red, shift={(0,\y)}] (-2pt,0) -- (2pt,0) node[left]{\y};
\end{tikzpicture}
 
\end{document}



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, eingetragen 2019-03-25


PS:

Sollen auch noch die Koordinaten von pgfmath berechnet werden, so ist nach wenigen Sechsecken Schluß, da sich x- und y-Koordinaten aus komplizierten Binomialkoeffizienten zusammensetzen.
TikZ ist eben nur ein Zeichenprogramm.

Also entweder Sage(math)/SageTeX verwenden oder die Koordinaten extern erstellen. Und idealerweise so ausgeben:
% Spirale
\def\Koordinatenliste{0/0,
-1/1,
0/2,
1/1, 
1/-1, 
0/-2, 
-1/-1,
-2/0, 
-2/2, 
-1/3,
0/4, 
1/3,
2/2, 
2/0,
2/-2, 
1/-3,
0/-4, 
-1/-3,
-2/-2,
-3/-1, 
-3/1,
-3/3}



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, eingetragen 2019-03-25


Siehe nä. Beitrag.



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2019-03-25


PS:

Wenn Du es umgekehrt nur über die Spirale machen willst, dann musst Du für die Spirale, also für deren Knotenpunkte eine Funktion angeben:
 - in kartesischen Koordinaten (schwer) oder
 - in Polarkoordinaten (vermutlich weniger schwer).


PPS:
[2. Einwand zurückgenommen]



  Profil  Quote  Link auf diesen Beitrag Link
Slash
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 23.03.2005
Mitteilungen: 7371
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, vom Themenstarter, eingetragen 2019-03-25


Jo, danke erstmal. cool



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.11, eingetragen 2019-03-26


Du musst für die Spirale eine Funktion angeben.

Manuell sieht das so aus
\foreach[evaluate={\N=int(\n-1)}] \n in {1,...,12}{
\pgfmathsetmacro\w{% Winkel
\N==0 ? 45 : (
\N==1 ? 135 : (
\N==2 ? 225 : (
\N==3 ? 270 : (
\N==4 ? 315 : (
\N==5 ? 45 : (
\N==6 ? 45 : (
\N==7 ? 90 : (
\N==8 ? 135 : (
\N==9 ? 135 : (
\N==10 ? 225 : (225)
)))))))))}
\pgfmathsetmacro{\h}{mod(\w,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\w:\h) node[Parkett=blue](\n){(\n)};
\draw[red] (\N.center) -- (\n.center);
}

Aber das kann ja nicht ewig so weitergehen.


<math>
\pgfmathsetmacro{\R}{1.3} % Umkreisradius
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius

\pgfmathsetmacro{\xMax}{6} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{6} %
\pgfmathsetmacro{\yMin}{-\yMax} %

\def\text{(\X,\Y)}
%\def\text{}



\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={red, thin},
]
% Rahmen
%\clip[] (-4,4) rectangle (3,-5);




% Ebene
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\text};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\text};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}

% Parkett
\node[Parkett=red, name=0](0)  at (0,0) {(0)};

\foreach[evaluate={\N=int(\n-1)}] \n in {1,...,12}{
\pgfmathsetmacro\w{% Winkel
\N==0 ? 45 : (
\N==1 ? 135 : (
\N==2 ? 225 : (
\N==3 ? 270 : (
\N==4 ? 315 : (
\N==5 ? 45 : (
\N==6 ? 45 : (
\N==7 ? 90 : (
\N==8 ? 135 : (
\N==9 ? 135 : (
\N==10 ? 225 : (225)
)))))))))}
\pgfmathsetmacro{\h}{mod(\w,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\w:\h) node[Parkett=blue](\n){(\n)};
\draw[red] (\N.center) -- (\n.center);
}


%% 1
%\path[] (0) --+ (45:\h) node[Parkett=red](1){(1)};
%\path[] (1) --+ (135:\h) node[Parkett=red](2){(2)};
%\path[] (2) --+ (225:\h) node[Parkett=red](3){(3)};
%\path[] (3) --+ (270:2) node[Parkett=red](4){(4)};
%\path[] (4) --+ (315:\h) node[Parkett=red](5){(5)};
%
%\path[] (5) --+ (45:\h) node[Parkett=red](6){(6)};
%\path[] (6) --+ (45:\h) node[Parkett=red](7){(7)};

%% 2
%\path[] (7) --+ (90:2) node[Parkett=red](8){(8)};
%
%\path[] (8) --+ (135:\h) node[Parkett=red](9){(9)};
%\path[] (9) --+ (135:\h) node[Parkett=red](10){(10)};
%
%\path[] (10) --+ (225:\h) node[Parkett=red](11){(11)};
%\path[] (11) --+ (225:\h) node[Parkett=red](12){(12)};
%
%\path[] (12) --+ (270:2) node[Parkett=red](13){(13)};
%\path[] (13) --+ (270:2) node[Parkett=red](14){(14)};
%
%\path[] (14) --+ (315:\h) node[Parkett=red](15){(15)};
%\path[] (15) --+ (315:\h) node[Parkett=red](16){(16)};
%
%\path[] (16) --+ (45:\h) node[Parkett=red](17){(17)};
%\path[] (17) --+ (45:\h) node[Parkett=red](18){(18)};

% 3
%\path[] (18) --+ (45:\h) node[Parkett=red](19){(19)};

%%% Spirale
%\foreach[evaluate={\N=int(\n-1)}] \n in {1,...,19} \draw[red] (\N.center) -- (\n.center);


%\fill[red, overlay] (P1) circle(2mm);


%% Spirale
%\draw[Spirale] (0,0)
%-- (-1,1)  node[fill=white]{1}
%-- (0,2)  node[fill=white]{2}
%-- (1,1)  node[fill=white]{3}
%-- (1,-1)  node[fill=white]{4}
%-- (0,-2)  node[fill=white]{5}
%-- (-1,-1) node[fill=white]{6}
%-- (-2,0) node[fill=white]{7}
%-- (-2,2) node[fill=white]{8}
%-- (-1,3) node[fill=white]{9}
%-- (0,4) node[fill=white]{10}
%-- (1,3) node[fill=white]{11}
%-- (2,2) node[fill=white]{12}
%-- (2,0) node[fill=white]{13}
%-- (2,-2) node[fill=white]{14}
%-- (1,-3) node[fill=white]{15}
%-- (0,-4) node[fill=white]{16}
%-- (-1,-3) node[fill=white]{17}
%-- (-2,-2) node[fill=white]{18}
%-- (-3,-1) node[fill=white]{19}
%-- (-3,1) node[fill=white]{20}
%-- (-3,3) node[fill=white]{21}
%-- (-2,4) node[fill=white]{22}
%-- (-1,5) node[fill=white]{23}
%-- (0,6)node[fill=white]{24}
%-- (1,5) node[fill=white]{25}
%-- (2,4) node[fill=white]{26}
%-- (3,3)node[fill=white]{27}
%-- (3,1) node[fill=white]{28}
%-- (3,-1) node[fill=white]{29}
%-- (3,-3)node[fill=white]{30}
%;




% KoSy
\draw[thick, -latex] (\xMin-\R,0) -- (\xMax+\R,0) node[below]{$x$};
\draw[thick, -latex] (0,\yMin-\R) -- (0,\yMax+\R) node[above]{$y$};

%\foreach \x in {\xMin,...,\xMax} \draw[red, shift={(\x,0)}] (0,-2pt) -- (0,2pt) node[below]{\x};
%%
%\foreach \y in {\yMin,...,\yMax} \draw[red, shift={(0,\y)}] (-2pt,0) -- (2pt,0) node[left]{\y};




\end{tikzpicture}
</math>



latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
 
\begin{document}
\pgfmathsetmacro{\R}{1.3} % Umkreisradius 
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius 
 
\pgfmathsetmacro{\xMax}{6} % 
\pgfmathsetmacro{\xMin}{-\xMax} % 
\pgfmathsetmacro{\yMax}{6} % 
\pgfmathsetmacro{\yMin}{-\yMax} % 
 
\def\text{(\X,\Y)}
%\def\text{}
 
 
 
\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm, 
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6, 
inner sep=0pt, 
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
}, 
Parkett/.default=black, 
Spirale/.style={red, thin},
]
% Rahmen
%\clip[] (-4,4) rectangle (3,-5);
 
 
 
 
% Ebene
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\text};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\text};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}
 
% Parkett
\node[Parkett=red, name=0](0)  at (0,0) {(0)};
 
\foreach[evaluate={\N=int(\n-1)}] \n in {1,...,12}{
\pgfmathsetmacro\w{% Winkel
\N==0 ? 45 : (
\N==1 ? 135 : (
\N==2 ? 225 : (
\N==3 ? 270 : (
\N==4 ? 315 : (
\N==5 ? 45 : (
\N==6 ? 45 : (
\N==7 ? 90 : (
\N==8 ? 135 : (
\N==9 ? 135 : (
\N==10 ? 225 : (225)
)))))))))}
\pgfmathsetmacro{\h}{mod(\w,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\w:\h) node[Parkett=blue](\n){(\n)};
\draw[red] (\N.center) -- (\n.center);
}
 
 
%% 1
%\path[] (0) --+ (45:\h) node[Parkett=red](1){(1)};
%\path[] (1) --+ (135:\h) node[Parkett=red](2){(2)};
%\path[] (2) --+ (225:\h) node[Parkett=red](3){(3)};
%\path[] (3) --+ (270:2) node[Parkett=red](4){(4)};
%\path[] (4) --+ (315:\h) node[Parkett=red](5){(5)};
%
%\path[] (5) --+ (45:\h) node[Parkett=red](6){(6)};
%\path[] (6) --+ (45:\h) node[Parkett=red](7){(7)};
 
%% 2
%\path[] (7) --+ (90:2) node[Parkett=red](8){(8)};
%
%\path[] (8) --+ (135:\h) node[Parkett=red](9){(9)};
%\path[] (9) --+ (135:\h) node[Parkett=red](10){(10)};
%
%\path[] (10) --+ (225:\h) node[Parkett=red](11){(11)};
%\path[] (11) --+ (225:\h) node[Parkett=red](12){(12)};
%
%\path[] (12) --+ (270:2) node[Parkett=red](13){(13)};
%\path[] (13) --+ (270:2) node[Parkett=red](14){(14)};
%
%\path[] (14) --+ (315:\h) node[Parkett=red](15){(15)};
%\path[] (15) --+ (315:\h) node[Parkett=red](16){(16)};
%
%\path[] (16) --+ (45:\h) node[Parkett=red](17){(17)};
%\path[] (17) --+ (45:\h) node[Parkett=red](18){(18)};
 
% 3
%\path[] (18) --+ (45:\h) node[Parkett=red](19){(19)};
 
%%% Spirale
%\foreach[evaluate={\N=int(\n-1)}] \n in {1,...,19} \draw[red] (\N.center) -- (\n.center);
 
 
%\fill[red, overlay] (P1) circle(2mm);
 
 
 
% KoSy
\draw[thick, -latex] (\xMin-\R,0) -- (\xMax+\R,0) node[below]{$x$};
\draw[thick, -latex] (0,\yMin-\R) -- (0,\yMax+\R) node[above]{$y$};
 
%\foreach \x in {\xMin,...,\xMax} \draw[red, shift={(\x,0)}] (0,-2pt) -- (0,2pt) node[below]{\x};
%%
%\foreach \y in {\yMin,...,\yMax} \draw[red, shift={(0,\y)}] (-2pt,0) -- (2pt,0) node[left]{\y};
 
\end{tikzpicture}
\end{document}
 





  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.12, eingetragen 2019-03-28 15:55


Eine Lösung.

· Die Folge der Winkel, jeweils zum vorangegangenen Sechseck gemessen, sieht so aus

<math>

% \begin{tikzpicture}
\newcommand{\AddOtherAngles}[1]{\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,#1}
{\xdef\myList{\myList,\X}}}}

\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,6}
{\foreach \a in {1,...,\A}
{\ifnum\a=1
\xdef\myList{45}
\else
\xdef\myList{\myList,45}
\fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
{\xdef\myList{\myList,90}}
\fi
\AddOtherAngles{\A}
\footnotesize \myList\par
}
........
</math>

Die Folgenglieder zu berechnen dürfte kompliziert und rechnerlastig sein; der gute murmeltier hat eine einfache Umsetzung der Folge als Liste angegeben.

· Die Abstände der Sechsecke, jeweils zum vorangegangenen Sechseck gemessen, sind gleich <math>2</math>, sofern der o.g. Winkel durch 10 teilbar ist, sonst <math>\sqrt{2}</math>.

Damit:

<math>
\pgfmathsetmacro{\R}{1.2} % 1.3  0.4        % Umkreisradius
\pgfmathsetmacro{\umlaeufe}{4}% 5  10
\def\TextParkett{(\n)} %
% \def\TextParkett{}
\def\TextEbene{(\X,\Y)} %
% \def\TextEbene{} %

% Abhängige Hilfsgrößen
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius
% Dimensionen Ebene
\pgfmathsetmacro{\xMax}{\umlaeufe+3} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{2*\umlaeufe+4} %
\pgfmathsetmacro{\yMin}{-\yMax} %



\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={red, thick},
]
% Rahmen
\clip[]  (\xMin,\yMax-1) rectangle (\xMax,\yMin+1);


% Ebene zeichnen
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}

% Parkett
% Winkelliste
\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,\umlaeufe}
{\foreach \a in {1,...,\A}
{\ifnum\a=1
\ifnum\A=1
\xdef\WinkelListe{45}
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
{\xdef\WinkelListe{\WinkelListe,90}}
\fi
\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,\A}
{\xdef\WinkelListe{\WinkelListe,\X}}}
}
\typeout{\WinkelListe}

% Parkett und Spirale zeichnen
\node[font=\bfseries\footnotesize,Parkett=brown!80!red](0)  at (0,0) {(0)}; % Start

\foreach[count=\n, evaluate={\N=int(\n-1)}] \w in \WinkelListe
{
\pgfmathsetmacro{\h}{mod(\w,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\w:\h) node[font=\bfseries\footnotesize,Parkett=brown](\n){\TextParkett};
\draw[Spirale] (\N.center) -- (\n.center);
}




\end{tikzpicture}
</math>

<math>
\pgfmathsetmacro{\R}{0.3} % 1.3  0.4        % Umkreisradius
\pgfmathsetmacro{\umlaeufe}{13}% 5  10
\def\TextParkett{(\n)} %
\def\TextParkett{}
\def\TextEbene{(\X,\Y)} %
\def\TextEbene{} %

% Abhängige Hilfsgrößen
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius
% Dimensionen Ebene
\pgfmathsetmacro{\xMax}{\umlaeufe+3} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{2*\umlaeufe+4} %
\pgfmathsetmacro{\yMin}{-\yMax} %



\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={red, thick},
]
% Rahmen
\clip[]  (\xMin,\yMax-1) rectangle (\xMax,\yMin+1);


% Ebene zeichnen
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}

% Parkett
% Winkelliste
\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,\umlaeufe}
{\foreach \a in {1,...,\A}
{\ifnum\a=1
\ifnum\A=1
\xdef\WinkelListe{45}
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
{\xdef\WinkelListe{\WinkelListe,90}}
\fi
\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,\A}
{\xdef\WinkelListe{\WinkelListe,\X}}}
}
\typeout{\WinkelListe}

% Parkett und Spirale zeichnen
\node[Parkett=brown!80!red](0)  at (0,0) {(0)}; % Start

\foreach[count=\n, evaluate={\N=int(\n-1)}] \w in \WinkelListe
{
\pgfmathsetmacro{\h}{mod(\w,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\w:\h) node[font=\bfseries\footnotesize,Parkett=brown](\n){\TextParkett};
\draw[Spirale] (\N.center) -- (\n.center);
}


\end{tikzpicture}
</math>

latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
 
\begin{document}
\pgfmathsetmacro{\R}{1.4} % 1.3  0.4        % Umkreisradius 
\pgfmathsetmacro{\umlaeufe}{5}% 5  10 
\def\TextParkett{(\n)} %
% \def\TextParkett{}
\def\TextEbene{(\X,\Y)} % 
% \def\TextEbene{} % 
 
% Abhängige Hilfsgrößen
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius 
% Dimensionen Ebene
\pgfmathsetmacro{\xMax}{\umlaeufe+3} % 
\pgfmathsetmacro{\xMin}{-\xMax} % 
\pgfmathsetmacro{\yMax}{2*\umlaeufe+4} % 
\pgfmathsetmacro{\yMin}{-\yMax} % 
 
 
 
\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm, 
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6, 
inner sep=0pt, 
draw=black, thick, fill= #1!40,
minimum width=\R cm, % Umkreisradius
}, 
Parkett/.default=black, 
Spirale/.style={red, thick},
]
% Rahmen
\clip[]  (\xMin,\yMax-1) rectangle (\xMax,\yMin+1);
 
 
% Ebene zeichnen
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} 
   \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}
 
% Parkett
% Winkelliste
\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,\umlaeufe}
{\foreach \a in {1,...,\A}
 {\ifnum\a=1
    \ifnum\A=1
     \xdef\WinkelListe{45}
    \else
     \xdef\WinkelListe{\WinkelListe,45}
    \fi
  \else
   \xdef\WinkelListe{\WinkelListe,45}
  \fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
 {\xdef\WinkelListe{\WinkelListe,90}}
\fi
\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,\A}
{\xdef\WinkelListe{\WinkelListe,\X}}}
}
\typeout{\WinkelListe}
 
% Parkett und Spirale zeichnen
\node[font=\bfseries\footnotesize,Parkett=brown!80!red](0)  at (0,0) {(0)}; % Start
 
\foreach[count=\n, evaluate={\N=int(\n-1)}] \w in \WinkelListe
{
\pgfmathsetmacro{\h}{mod(\w,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\w:\h) node[font=\bfseries\footnotesize,Parkett=brown](\n){\TextParkett}; 
\draw[Spirale] (\N.center) -- (\n.center);
}
 
 
\end{tikzpicture}
 
\end{document}



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.13, eingetragen 2019-03-29 12:05


Oder, wie in #3 gewünscht, mit gegensätzlichem Umlaufsinn durch die gleiche Winkelliste, aber Verwendung des Supplementwinkels:

\foreach[count=\n, evaluate={\N=int(\n-1)}] \w in \WinkelListe
{
\pgfmathsetmacro{\W}{180-\w}% Winkel
\pgfmathsetmacro{\h}{mod(\W,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\W:\h) node[font=\bfseries\footnotesize,Parkett=purple](\n){\TextParkett}; 
\draw[Spirale] (\N.center) -- (\n.center);
}

<math>
\pgfmathsetmacro{\R}{1.2} % 1.3  0.4        % Umkreisradius
\pgfmathsetmacro{\umlaeufe}{5}% 5  10
\def\TextParkett{(\n)} %
%   \def\TextParkett{}
\def\TextEbene{(\X,\Y)} %
%   \def\TextEbene{} %

% Abhängige Hilfsgrößen
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius
% Dimensionen Ebene
\pgfmathsetmacro{\xMax}{\umlaeufe+3} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{2*\umlaeufe+4} %
\pgfmathsetmacro{\yMin}{-\yMax} %



\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!44,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={violet, very thick},
]
% Rahmen
\clip[]  (\xMin,\yMax-1) rectangle (\xMax,\yMin+1);


% Ebene zeichnen
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}

% Parkett
% Winkelliste
\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,\umlaeufe}
{\foreach \a in {1,...,\A}
{\ifnum\a=1
\ifnum\A=1
\xdef\WinkelListe{45}
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
{\xdef\WinkelListe{\WinkelListe,90}}
\fi
\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,\A}
{\xdef\WinkelListe{\WinkelListe,\X}}}
}
\typeout{\WinkelListe}

% Parkett und Spirale zeichnen
\node[font=\bfseries\footnotesize, Parkett=purple!80!red](0)  at (0,0) {(0)}; % Start

\foreach[count=\n, evaluate={\N=int(\n-1)}] \w in \WinkelListe
{
\pgfmathsetmacro{\W}{180-\w}% Winkel
\pgfmathsetmacro{\h}{mod(\W,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\W:\h) node[font=\bfseries\footnotesize,Parkett=purple](\n){\TextParkett};
\draw[Spirale] (\N.center) -- (\n.center);
}


\end{tikzpicture}

</math>



<math>
\pgfmathsetmacro{\R}{0.45} % 1.3  0.4        % Umkreisradius
\pgfmathsetmacro{\umlaeufe}{11}% 5  10
\def\TextParkett{(\n)} %
\def\TextParkett{}
\def\TextEbene{(\X,\Y)} %
\def\TextEbene{} %

% Abhängige Hilfsgrößen
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius
% Dimensionen Ebene
\pgfmathsetmacro{\xMax}{\umlaeufe+3} %
\pgfmathsetmacro{\xMin}{-\xMax} %
\pgfmathsetmacro{\yMax}{2*\umlaeufe+4} %
\pgfmathsetmacro{\yMin}{-\yMax} %



\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm,
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6,
inner sep=0pt,
draw=black, thick, fill= #1!44,
minimum width=\R cm, % Umkreisradius
},
Parkett/.default=black,
Spirale/.style={violet, very thick},
]
% Rahmen
\clip[]  (\xMin,\yMax-1) rectangle (\xMax,\yMin+1);


% Ebene zeichnen
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}

% Parkett
% Winkelliste
\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,\umlaeufe}
{\foreach \a in {1,...,\A}
{\ifnum\a=1
\ifnum\A=1
\xdef\WinkelListe{45}
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi
\else
\xdef\WinkelListe{\WinkelListe,45}
\fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
{\xdef\WinkelListe{\WinkelListe,90}}
\fi
\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,\A}
{\xdef\WinkelListe{\WinkelListe,\X}}}
}
\typeout{\WinkelListe}

% Parkett und Spirale zeichnen
\node[font=\bfseries\footnotesize, Parkett=purple!80!red](0)  at (0,0) {(0)}; % Start

\foreach[count=\n, evaluate={\N=int(\n-1)}] \w in \WinkelListe
{
\pgfmathsetmacro{\W}{180-\w}% Winkel
\pgfmathsetmacro{\h}{mod(\W,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\W:\h) node[font=\bfseries\footnotesize,Parkett=purple](\n){\TextParkett};
\draw[Spirale] (\N.center) -- (\n.center);
}


\end{tikzpicture}
</math>

latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
 
\begin{document}
\pgfmathsetmacro{\R}{1.2} % 1.3  0.4        % Umkreisradius 
\pgfmathsetmacro{\umlaeufe}{5}% 5  10 
\def\TextParkett{(\n)} %
%   \def\TextParkett{}
\def\TextEbene{(\X,\Y)} % 
%   \def\TextEbene{} % 
 
% Abhängige Hilfsgrößen
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius 
% Dimensionen Ebene
\pgfmathsetmacro{\xMax}{\umlaeufe+3} % 
\pgfmathsetmacro{\xMin}{-\xMax} % 
\pgfmathsetmacro{\yMax}{2*\umlaeufe+4} % 
\pgfmathsetmacro{\yMin}{-\yMax} % 
 
 
 
\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm, 
font=\tiny,%\footnotesize,
Parkett/.style={
shape=regular polygon, regular polygon sides=6, 
inner sep=0pt, 
draw=black, thick, fill= #1!44,
minimum width=\R cm, % Umkreisradius
}, 
Parkett/.default=black, 
Spirale/.style={violet, very thick},
]
% Rahmen
\clip[]  (\xMin,\yMax-1) rectangle (\xMax,\yMin+1);
 
 
% Ebene zeichnen
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}
 
% Parkett
% Winkelliste
\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,\umlaeufe}
{\foreach \a in {1,...,\A}
 {\ifnum\a=1
    \ifnum\A=1
     \xdef\WinkelListe{45}
    \else
     \xdef\WinkelListe{\WinkelListe,45}
    \fi
  \else
   \xdef\WinkelListe{\WinkelListe,45}
  \fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
 {\xdef\WinkelListe{\WinkelListe,90}}
\fi
\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,\A}
{\xdef\WinkelListe{\WinkelListe,\X}}}
}
\typeout{\WinkelListe}
 
% Parkett und Spirale zeichnen
\node[font=\bfseries\footnotesize, Parkett=purple!80!red](0)  at (0,0) {(0)}; % Start
 
\foreach[count=\n, evaluate={\N=int(\n-1)}] \w in \WinkelListe
{
\pgfmathsetmacro{\W}{180-\w}% Winkel
\pgfmathsetmacro{\h}{mod(\W,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\W:\h) node[font=\bfseries\footnotesize,Parkett=purple](\n){\TextParkett}; 
\draw[Spirale] (\N.center) -- (\n.center);
}
 
 
\end{tikzpicture}
 
\end{document}




  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.14, eingetragen 2019-03-29 20:25


Animation.



latex
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
 
\begin{document}
\pgfmathsetmacro{\R}{0.4} % 1.3  0.4        % Umkreisradius 
\pgfmathsetmacro{\Sechsecke}{3}% Anzahl Sechsecke
 
\def\TextParkett{(\n)} %
   \def\TextParkett{}
\def\TextEbene{(\X,\Y)} % 
   \def\TextEbene{} % 
 
\tikzset{
Parkett/.style={
shape=regular polygon, regular polygon sides=6, 
inner sep=0pt, 
draw=black, thick, fill= #1!44,
minimum width=\R cm, % Umkreisradius
}, 
Parkett/.default=black, 
Spirale/.style={red!80!black, very thick},
}
 
% Abhängige Hilfsgrößen
\pgfmathsetmacro{\umlaeufe}{ceil(1/3*(sqrt(3*\Sechsecke+1)-1))}%
\pgfmathsetmacro{\r}{\R*sqrt(3)/2} % Inkreisradius 
% Dimensionen Ebene
\pgfmathsetmacro{\xMax}{\umlaeufe+3} % 
\pgfmathsetmacro{\xMin}{-\xMax} % 
\pgfmathsetmacro{\yMax}{2*\umlaeufe+4} % 
\pgfmathsetmacro{\yMin}{-\yMax} % 
 
 
% Winkelliste
\foreach \A [evaluate=\A as \B using {int(\A-1)}] in {1,...,\umlaeufe}
{\foreach \No in {1,...,\A}
 {\ifnum\No=1
    \ifnum\A=1
     \xdef\WinkelListe{45}
    \else
     \xdef\WinkelListe{\WinkelListe,45}
    \fi
  \else
   \xdef\WinkelListe{\WinkelListe,45}
  \fi}
\ifnum\B>0
\foreach \b in {1,...,\B}
 {\xdef\WinkelListe{\WinkelListe,90}}
\fi
\foreach \X in {135,225,270,315}
{\foreach \Y in {1,...,\A}
{\xdef\WinkelListe{\WinkelListe,\X}}}
}
%\typeout{\WinkelListe}
 
% Array anlegen       % \ArrayLength{{1,2,3,4}}
\xdef\winkelliste{{\WinkelListe}}
%\pgfmathsetmacro{\winkel}{\WinkelListe[0]} % 
 
% Arraylänge messen 
\newcounter{arraycard}
\def\ArrayLength#1{%
  \setcounter{arraycard}{-1}%
  \foreach \x in #1{%
    \stepcounter{arraycard}%
  }%
%  Arraylaenge: \the\value{arraycard}% anzeigen
  \pgfmathsetmacro{\Arraylaenge}{\value{arraycard}}
}  
\ArrayLength{\WinkelListe}
 
% Test:
%\WinkelListe
 
% Arraylaenge: \the\value{arraycard}%
 
%\pgfmathsetmacro{\winkel}{{\WinkelListe}[15]} 
%\winkel
 
%\pgfmathsetmacro{\Sechsecke}{7}% 5  10 
 
\def\pgfmathsetglobalmacro#1#2{%
  \pgfmathparse{#2}%
  \global\let#1\pgfmathresult}
 
\ifnum\Sechsecke>\the\value{arraycard}%
{ \pgfmathsetglobalmacro\Max{\value{arraycard}}     }%
\else%
{  \pgfmathsetglobalmacro\Max{\Sechsecke}    }%
\fi%
 
\foreach \No in {0,1,...,\Max} {%%%%%%%%%%%%%%
\begin{tikzpicture}[%scale=0.7,
x =0.75*\R cm, y=0.5*\r cm, 
font=\tiny,%\footnotesize,
]
% Rahmen
\clip[]  (\xMin,\yMax-1) rectangle (\xMax,\yMin+1);
 
 
% Ebene zeichnen
\foreach[evaluate={\X=int(\x)}] \x in {\xMin,...,\xMax} \foreach[evaluate={\Y=int(\y)}] \y in {\yMin,...,\yMax}{
\pgfmathsetmacro\temp{iseven(\x) && iseven(\y) ? 1 : 0}
\pgfmathsetmacro\Temp{isodd(\x) && isodd(\y) ? 1 : 0}
\ifnum\temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
\ifnum\Temp=1 \node[Parkett] at (\x,\y){\TextEbene};\else\fi
% \node[] at (\x,\y+2){\temp}; % Test
}
 
% Parkett und Spirale zeichnen
\node[font=\bfseries\footnotesize, Parkett=orange!80!red](0)  at (0,0) {}; % Start
 
\foreach[count=\n, evaluate={\N=int(\n-1)}] \ww in {0,...,\No}
{
\pgfmathsetmacro{\w}{{\WinkelListe}[\ww]} 
\pgfmathsetmacro{\W}{\w}% Winkel
\pgfmathsetmacro{\h}{mod(\W,10)==0 ? 2 : sqrt(2)}% Abstand
\path[] (\N) --+ (\W:\h) node[font=\bfseries\footnotesize,Parkett=orange](\n){\TextParkett}; 
\draw[Spirale] (\N.center) -- (\n.center);
}
 
\end{tikzpicture}
} %%%%%%%%%%%%%%%%%%%%
 
\end{document}
 





  Profil  Quote  Link auf diesen Beitrag Link
OlgaBarati
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 16.11.2018
Mitteilungen: 90
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.15, eingetragen 2019-03-29 20:33


Beeindruckend !!!



  Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.16, eingetragen 2019-03-29 23:28


2019-03-29 20:33 - OlgaBarati in Beitrag No. 15 schreibt:
Beeindruckend !!!

Nett von Dir.
Eleganter ist es natürlich, wenn man das komplett mit animate.sty umsetzt. Aber das arbeitet m.W. mit eps-Grafiken und ist daher nicht die einfachste Methode, eine animierte gif-Datei zu erzeugen.
Beides auf einmal wäre wieder so ein Jahrhundertprojekt.
Animierte gif's LaTeX-intern geht über zwei arara-Regeln, die wiederum imagemagick verwenden - aber da ist da Ergebnis (bei mir) weniger schön. Also, ich gebe es zu, habe ich einen externen gif-Konverter verwendet.




  Profil  Quote  Link auf diesen Beitrag Link
Slash hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]