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 '18, 13:43

Blitz's gravatar image

Blitz
146110
Akzeptiert-Rate: 0%

bearbeitet 13 Mär '18, 18:36

Ijon%20Tichy's gravatar image

Ijon Tichy
9.4k31127

Ä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 '18, 18: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 '18, 18:30

Ijon%20Tichy's gravatar image

Ijon Tichy
9.4k31127
Akzeptiert-Rate: 54%

bearbeitet 13 Mär '18, 18:35

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×685
×52
×48
×5

gestellte Frage: 13 Mär '18, 13:43

Frage wurde gesehen: 1,986 Mal

zuletzt geändert: 13 Mär '18, 18:37