goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Sterne mit Flaggenfarben

 

Beinschuss
Forum-Meister
Forum-Meister

Beiträge: 782
Anmeldedatum: 02.10.12
Wohnort: NRW
Version: MiKTeX, Windows 10, TeXstudio
     Beitrag Verfasst am: 17.06.2017, 22:26     Titel: Sterne mit Flaggenfarben
  Antworten mit Zitat      
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?
Code • Öffne in Overleaf
\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/quest.....w-star-in-tikz-background
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2255
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 18.06.2017, 03:57     Titel:
  Antworten mit Zitat      
Beispielsweise:

Code • Öffne in Overleaf
\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}




gl_stern.png
 Beschreibung:

Download
 Dateiname:  gl_stern.png
 Dateigröße:  7.67 KB
 Heruntergeladen:  65 mal
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1135
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: Windows 7 64 Bit MiKTeX 2.9 32-Bit
     Beitrag Verfasst am: 18.06.2017, 06:14     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen

Beinschuss
Forum-Meister
Forum-Meister

Beiträge: 782
Anmeldedatum: 02.10.12
Wohnort: NRW
Version: MiKTeX, Windows 10, TeXstudio
     Beitrag Verfasst am: 18.06.2017, 17:04     Titel:
  Antworten mit Zitat      
Danke, Elke, danke Bartman, klappt prima. Hier noch die gedrehte Variante (Beispiel: Rumänien), falls es jemanden interessiert:
Code • Öffne in Overleaf
\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}




flaggenstern-rumkl.png
 Beschreibung:

Download
 Dateiname:  flaggenstern-rumkl.png
 Dateigröße:  17.74 KB
 Heruntergeladen:  58 mal
Private Nachricht senden Benutzer-Profile anzeigen

Beinschuss
Forum-Meister
Forum-Meister

Beiträge: 782
Anmeldedatum: 02.10.12
Wohnort: NRW
Version: MiKTeX, Windows 10, TeXstudio
     Beitrag Verfasst am: 20.01.2018, 22:08     Titel:
  Antworten mit Zitat      
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:
Code • Öffne in Overleaf
\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?
Private Nachricht senden Benutzer-Profile anzeigen

Bartman
Forum-Meister
Forum-Meister


Beiträge: 1135
Anmeldedatum: 16.07.09
Wohnort: Hessische Provinz
Version: Windows 7 64 Bit MiKTeX 2.9 32-Bit
     Beitrag Verfasst am: 21.01.2018, 13:50     Titel:
  Antworten mit Zitat      
Mein Vorschlag arbeitet mit der intersections-Bibliothek:

Code • Öffne in Overleaf
\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}
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2018 goLaTeX.de