Folgefrage zu „Tikz Cycle wie im Beispiel nur ohne Pfeile

Wie kann ich jetzt noch die 4 Segmente in unterschiedlichen Farben darstellen?

Hier mein MWE:

Öffne in Overleaf
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{decorations.text}
\definecolor{mygray}{RGB}{208,208,208}
\definecolor{mymagenta}{RGB}{226,0,116}
\newcommand*{\mytextstyletwo}{\sffamily\Large\bfseries\color{black!85}}
\newcommand{\arcnoarrow}[3]{%
% inner radius, middle radius, outer radius, start angle,
% end angle, tip protusion angle, options, text
\pgfmathsetmacro{\rin}{1.7}
\pgfmathsetmacro{\rmid}{2.2}
\pgfmathsetmacro{\rout}{2.7}
\pgfmathsetmacro{\astart}{#1}
\pgfmathsetmacro{\aend}{#2}
\pgfmathsetmacro{\atip}{0}
\fill[mygray, very thick] (\astart+\atip:\rin)
arc (\astart+\atip:\aend:\rin)
-- (\aend-\atip:\rmid)
-- (\aend:\rout)   arc (\aend:\astart+\atip:\rout)
-- (\astart:\rmid) -- cycle;
\path[
decoration = {
    text along path,
    text = {|\mytextstyletwo|#3},
    text align = {align = center},
    raise = -1.0ex
},
decorate
](\astart+\atip:\rmid) arc (\astart+\atip:\aend+\atip:\rmid);
}
\begin{document}
\begin{tikzpicture}
\fill[even odd rule,mymagenta] circle (1.5);

\node at (0,0) [
font  = \mytextstyletwo,
color = white,
align = center
]{
    PDCA\\
    Cycle
};
\arcnoarrow{ 90}{  0}{Plan}
\arcnoarrow{270}{360}{Do}
\arcnoarrow{180}{270}{Check}
\arcnoarrow{180}{ 90}{Act}
\end{tikzpicture}
\end{document}

gefragt 13 Mär, 08:43

Blitz's gravatar image

Blitz
1313
Akzeptiert: 100%

bearbeitet 13 Mär, 13:36

Ijon%20Tichy's gravatar image

Ijon Tichy
7.7k11019

Ähm, „link text“ ist kein sinnvoller Text für einen Link. Ich habe das mal ersetzt. Bitte gib dir künftig etwas mehr Mühe bei deinen Fragen.

(13 Mär, 13:37) Ijon Tichy

Wie bereits von saputello in einem Kommentar zu seiner Antwort auf die ursprüngliche Frage vorgeschlagen würde ich in diesem Fall die Parameter von \arcarrow über \pgfkeys als Optionen definieren und \arcarrow um ein optionales Argument zum Setzen dieser Optionen erweitern. Die Farbe kann man dann ebenfalls als Option definieren:

Öffne in Overleaf
\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{decorations.text}
\definecolor{mygray}{RGB}{208,208,208}
\definecolor{mymagenta}{RGB}{226,0,116}
\newcommand*{\mytextstyletwo}{\sffamily\Large\bfseries\color{black!85}}
\newcommand{\arcarrow}[4][]{%
  \pgfkeys{%
    /arcarrow/rin/.code={\pgfmathsetmacro{\rin}{##1}},
    /arcarrow/rmid/.code={\pgfmathsetmacro{\rmid}{##1}},
    /arcarrow/rout/.code={\pgfmathsetmacro{\rout}{##1}},
    /arcarrow/atip/.code={\pgfmathsetmacro{\atip}{##1}},
    /arcarrow/atip/.default=5,
    /arcarrow/rin=1.7,
    /arcarrow/rmid=2.2,
    /arcarrow/rout=2.7,
    /arcarrow/atip=0,
    /arcarrow/fill/.code={\colorlet{fillcolor}{##1}},
    /arcarrow/fill=mygray,
    /arcarrow/.cd,
    #1
  }%
  \pgfmathsetmacro{\astart}{#2}
  \pgfmathsetmacro{\aend}{#3}
  \fill[fillcolor, very thick] (\astart+\atip:\rin)
    arc (\astart+\atip:\aend:\rin)
    -- (\aend-\atip:\rmid)
    -- (\aend:\rout)   arc (\aend:\astart+\atip:\rout)
    -- (\astart:\rmid) -- cycle;
  \path[
    decoration = {
      text along path,
      text = {|\mytextstyletwo|#4},
      text align = {align = center},
      raise = -1.0ex
    },
    decorate
  ](\astart+\atip:\rmid) arc (\astart+\atip:\aend+\atip:\rmid);
}
\begin{document}
\begin{tikzpicture}
\fill[even odd rule,mymagenta] circle (1.5);

\node at (0,0) [
font  = \mytextstyletwo,
color = white,
align = center
]{
    PDCA\\
    Cycle
};
\arcarrow[fill=green]{ 90}{  0}{Plan}
\arcarrow[fill=red]{270}{360}{Do}
\arcarrow[fill=blue]{180}{270}{Check}
\arcarrow{180}{ 90}{Act}
\end{tikzpicture}
\end{document}

Ring mit unterschiedlichen Farben

Ich habe bei der Gelegenheit auch gleich atip als Option mit dem Default-Wert 5 definiert, so dass man Pfeilspitzen nun beispielsweise mit \arcarrow[fill=blue,atip]{180}{270}{Check} erreichen kann. Will man spitzere Pfeile kann man beispielsweise \arcarrow[fill=blue,atip=10]{180}{270}{Check} verwenden. Will man stumpfere Pfeile kann man beispielsweise \arcarrow[fill=blue,atip=2]{180}{270}{Check} nehmen.

Näheres zu \pgfkeys findet man in Abschnitt 82 der pgf-Anleitung. Bitte nachlesen!

BTW: Ich empfehle, Code immer sinnvoll, beispielsweise nach Klammerpaaren, einzurücken. Das macht ihn weit besser lesbar. Vergleiche einfach einmal deinen flachen Code mit meinem. Bei dir ist es weit schwerer, zusammengehörende Klammerpaare zu finden und so die Semantik zu erfassen.

Permanenter link

beantwortet 13 Mär, 13:30

Ijon%20Tichy's gravatar image

Ijon Tichy
7.7k11019

bearbeitet 13 Mär, 13:35

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×616
×50
×43
×3

Frage gestellt: 13 Mär, 08:43

Frage wurde angeschaut: 480 Mal

Zuletzt aktualisiert: 13 Mär, 13:37