Sterne mit Flaggenfarben

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Sterne mit Flaggenfarben

von Bartman » So 21. Jan 2018, 13:50

Mein Vorschlag arbeitet mit der intersections-Bibliothek:
\documentclass[tikz, border=1pt]{standalone}
\usetikzlibrary{shapes, intersections}

\begin{document} 
\begin{tikzpicture}
\node [name=R, star, star point height=.5cm, minimum size=2cm] {};

\path [name path=left vertical] (R.inner point 1) |- (R.outer point 3);
\path [name path=left diagonal] (R.south) -- (R.outer point 3);
\path [name intersections={of=left vertical and left diagonal, by=left intersection}];

\path [name path=right vertical] (R.inner point 5) |- (R.outer point 4);
\path [name path=right diagonal] (R.south) -- (R.outer point 4);
\path [name intersections={of=right vertical and right diagonal, by=right intersection}];

\fill [blue] (R.inner point 1) -- (R.outer point 2) -- (R.inner point 2) -- (R.outer point 3) -- (left intersection);
\fill [yellow] (R.inner point 1) -- (R.north) -- (R.inner point 5) -- (right intersection) -- (R.south) -- (left intersection);
\fill [red] (R.inner point 5) -- (R.outer point 5) -- (R.inner point 4) -- (R.outer point 4) -- (right intersection);
\end{tikzpicture}
\end{document}

von Beinschuss » Sa 20. Jan 2018, 22:08

Ich habe mich nochmal mit einem älteren Beispiel beschäftigt. Wenn man die Shapes-Library benutzt, kann man einen solchen Stern in Landesfarben auch so setzen:
\documentclass[margin=5pt]{standalone} 
\usepackage{tikz} 
\usetikzlibrary{shapes}

\begin{document} 
\begin{tikzpicture}
\node [name=D,star,star point height=.5cm, minimum size=2cm] at (1,1){};
\fill[black] (D.outer point 2) -- (D.inner point 1) -- (D.outer point 1) -- (D.inner point 5) -- (D.outer point 5);
\fill[red] (D.outer point 2) -- (D.outer point 5) -- (D.inner point 4) -- (D.inner point 2);
\fill[yellow] (D.inner point 2) -- (D.inner point 4) -- (D.outer point 4) -- (D.inner point 3) -- (D.outer point 3);
\end{tikzpicture}

\begin{tikzpicture}
\node [name=R,star,star point height=.5cm, minimum size=2cm] at (1,1){};
\fill[blue] (R.inner point 1) -- (R.outer point 2) -- (R.inner point 2) -- (R.outer point 3) -- ([yshift=-1.07cm]R.inner point 1);
\fill[yellow] (R.inner point 1) -- (D.north) -- (D.inner point 5) -- ([yshift=-1.07cm]D.inner point 5) -- (R.south) -- ([yshift=-1.07cm]R.inner point 1);
\fill[red] (R.inner point 5) -- (R.outer point 5) -- (R.inner point 4) -- (R.outer point 4) -- ([yshift=-1.07cm]R.inner point 5);
\end{tikzpicture}
\end{document}
	
Bei der zweiten Variante musste ich die Länge der lotrechten Linie manuell ermitteln (yshift). Geht das noch eleganter?

von Beinschuss » So 18. Jun 2017, 18:04

Danke, Elke, danke Bartman, klappt prima. Hier noch die gedrehte Variante (Beispiel: Rumänien), falls es jemanden interessiert:
\documentclass[margin=5pt]{standalone} 
\usepackage{tikz} 
\newcommand{\tstar}[5]{% inner radius, outer radius, tips, rot angle, options 
	\pgfmathsetmacro{\starangle}{360/#3} 
	\path[#5]% eventuell path statt draw 
	(#4:#1) 
	\foreach \x in {1,...,#3} 
	{ -- (#4+\x*\starangle-\starangle/2:#2) -- (#4+\x*\starangle:#1) 
	} 
	-- cycle; 
} 

\begin{document}

	\begin{tikzpicture} 
	\tstar{2}{5}{5}{180}{ 
		thick,
		rotate=90,  
		draw, 
		path picture={%
			\path(current path bounding box.north west)--(current path bounding box.south east) 
			coordinate[pos=0]    (temp1) 
			coordinate[pos=.375](temp2) %Anpassung der Position an der oberen Sternbreite, nicht mathematisch genau 1/3. 
			coordinate[pos=.625](temp3) 
			coordinate           (temp4) 
			; 
			\fill[blue]  (temp1)        rectangle (temp2-|temp4); 
			\fill[yellow]    (temp1|-temp2) rectangle (temp3-|temp4); 
			\fill[red] (temp1|-temp3) rectangle (temp4); 
		} 
	} 
	\end{tikzpicture} 			
\end{document}
Bild
Dateianhänge
flaggenstern-rumkl.png
flaggenstern-rumkl.png (17.74 KiB) 2158 mal betrachtet

von Bartman » So 18. Jun 2017, 07:14

Meine virtuelle Wasserwaage empfiehlt eine -18 als viertes Argument von \tstar.

Der Wert, welcher der Option pos zugewiesen wird, darf offenbar auch als Bruch angegeben werden.

von esdd » So 18. Jun 2017, 04:57

Beispielsweise:
\documentclass[margin=5pt]{standalone} 
\usepackage{tikz}
\newcommand{\tstar}[5]{% inner radius, outer radius, tips, rot angle, options 
   \pgfmathsetmacro{\starangle}{360/#3} 
   \path[#5]% eventuell path statt draw
  (#4:#1) 
   \foreach \x in {1,...,#3} 
   { -- (#4+\x*\starangle-\starangle/2:#2) -- (#4+\x*\starangle:#1) 
   } 
   -- cycle; 
} 

\begin{document} 
\begin{tikzpicture} 
  \tstar{2}{4}{5}{-17}{
    thick,
    %draw,
    path picture={%
      \path(current path bounding box.north west)--(current path bounding box.south east)
        coordinate[pos=0]    (temp1)
        coordinate[pos=.3333](temp2)
        coordinate[pos=.6666](temp3)
        coordinate           (temp4)
      ;
      \fill[black]  (temp1)        rectangle (temp2-|temp4);
      \fill[red]    (temp1|-temp2) rectangle (temp3-|temp4);
      \fill[yellow] (temp1|-temp3) rectangle (temp4);
    }
  }
\end{tikzpicture} 
\end{document}
Bild
Dateianhänge
gl_stern.png
gl_stern.png (7.67 KiB) 2150 mal betrachtet

Sterne mit Flaggenfarben

von Beinschuss » Sa 17. Jun 2017, 23:26

Ich möchte Sterne in Flaggenfarben mit TiKZ erstellen. Ich möchte aber keinen Farbverlauf haben, wie im Minimalbeispiel, sondern scharfe Trennungen der drei Farben (z. B. Deutschland: schwarz oben, rot in der Mitte, gelb unten), und stehe gerade auf dem Schlauch. Wie kann's gehen?
\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes,backgrounds}
\newcommand{\tstar}[5]{% inner radius, outer radius, tips, rot angle, options
	\pgfmathsetmacro{\starangle}{360/#3}
	\draw[#5] (#4:#1)
	\foreach \x in {1,...,#3}
	{ -- (#4+\x*\starangle-\starangle/2:#2) -- (#4+\x*\starangle:#1)
	}
	-- cycle;
}

\begin{document}
	\begin{tikzpicture}
	\tstar{2}{4}{5}{-17}{thick,fill, top color=black, bottom color=yellow, middle color=red};
	\end{tikzpicture}
\end{document}
Den Code für den Stern habe ich hierher: https://tex.stackexchange.com/questions ... background

Nach oben