Text rotieren

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: Text rotieren

Re: Text rotieren

von Beinschuss » Do 1. Dez 2022, 19:28

Hallo Bartman,

besten Dank, ich konnte es auch schon aus dem Minimalbeispiel in meine "echte" Grafik übertragen.

Helmut

Re: Text rotieren

von Bartman » Do 1. Dez 2022, 19:10

Du könntest eine Fallunterscheidung in die Schleife einbauen sowie die addierten Werte für den Start- und Endwinkel zur Ausgabe der beiden oberen Texte vertauschen.
\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.text,backgrounds}

\newcommand*{\mytextstyle}{\sffamily\large\bfseries\color{black!85}}

\tikzstyle{zentr}=[shape=circle,draw=none,text=black,font=\Large\bfseries,minimum size=3cm]

\newcommand{\arcarrow}[8]{%
	% inner radius, middle radius, outer radius, start angle,
	% end angle, tip protusion angle, options, text
	\pgfmathsetmacro{\rin}{#1}
	\pgfmathsetmacro{\rmid}{#2}
	\pgfmathsetmacro{\rout}{#3}
	\pgfmathsetmacro{\astart}{#4}
	\pgfmathsetmacro{\aend}{#5}
	\pgfmathsetmacro{\atip}{#6}
	\fill[#7] (\astart:\rin) arc (\astart:\aend:\rin)
	-- (\aend+\atip:\rmid) -- (\aend:\rout) arc (\aend:\astart:\rout)
	-- (\astart+\atip:\rmid) -- cycle;
	\path[
			font = \sffamily, 
			decoration = {
				text along path, 
				text = {|\mytextstyle|#8},
				text align = {align = center}, 
				raise = -0.5ex}, 
				decorate]
	(\astart+\atip:\rmid) arc (\astart+\atip:\aend+\atip:\rmid);
}

\begin{document}
	\begin{tikzpicture}
		\node[zentr, align=center,fill=red!50] (Kreis) {Kreis};
		% Wegen des Foreneditors wird zwischen 8 und ) ein Leerzeichen eingefügt.
		\fill[even odd rule,red!30] circle (3.8 ) circle (3.2);
		\foreach \x\j in {
			0/Text falsch rum,
			90/Text falsch rum,
			180/Text richtig rum,
			270/Text richtig rum}
		{
		    \ifnum\x>90
		        \arcarrow{3}{3.5}{4}{\x+20}{\x+100}{5}
		            {red!50,draw = red!50!black, very thick}{\j};
			\else
			    \arcarrow{3}{3.5}{4}{\x+100}{\x+20}{5}
		            {red!50,draw = red!50!black, very thick}{\j};
			\fi
		}
	\end{tikzpicture}
\end{document}

Text rotieren

von Beinschuss » Do 1. Dez 2022, 17:35

Guten Tag zusammen,

in folgendem Minimalbeispiel:
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{decorations.text,backgrounds}
\newcommand*{\mytextstyle}{\sffamily\large\bfseries\color{black!85}}
\tikzstyle{zentr}=[shape=circle,draw=none,text=black,font=\Large\bfseries,minimum size=3cm]
\newcommand{\arcarrow}[8]{%
	% inner radius, middle radius, outer radius, start angle,
	% end angle, tip protusion angle, options, text
	\pgfmathsetmacro{\rin}{#1}
	\pgfmathsetmacro{\rmid}{#2}
	\pgfmathsetmacro{\rout}{#3}
	\pgfmathsetmacro{\astart}{#4}
	\pgfmathsetmacro{\aend}{#5}
	\pgfmathsetmacro{\atip}{#6}
	\fill[#7] (\astart:\rin) arc (\astart:\aend:\rin)
	-- (\aend+\atip:\rmid) -- (\aend:\rout) arc (\aend:\astart:\rout)
	-- (\astart+\atip:\rmid) -- cycle;
	\path[
			font = \sffamily, 
			decoration = {
				text along path, 
				text = {|\mytextstyle|#8},
				text align = {align = center}, 
				raise = -0.5ex}, 
				decorate]
	(\astart+\atip:\rmid) arc (\astart+\atip:\aend+\atip:\rmid);
}

\begin{document}
	\begin{tikzpicture}
		\node[zentr, align=center,fill=red!50] (Kreis) {Kreis};
		\fill[even odd rule,red!30] circle (3.8) circle (3.2);
		\foreach \x\j in {
			0/Text falsch rum,
			90/Text falsch rum,
			180/Text richtig rum,
			270/Text richtig rum}
		 	{\arcarrow{3}{3.5}{4}{\x+20}{\x+100}{5}{red!50,
				draw = red!50!black, very thick}{\j};
		}
	\end{tikzpicture}
\end{document}
möchte ich die oberen beiden Texte rotieren, damit sie besser lesbar sind. Die Grafik ist angelehnt an https://texample.net/tikz/examples/circular-arrows-text/. Im verwandten Beispiel https://texample.net/tikz/examples/pdca-cycle/ sind die oberen beiden Texte rotiert, aber dort wird nicht mit einer foreach-Schleife gearbeitet. Geht's auch mit Schleife?

Beste Grüße

Helmut

Nach oben