Hallo!

Ich habe hier eine Lösung, unten zitiert, gefunden. Geht das nicht auch irgendwie einfacher? Das Bild zeigt jetzt eine Rechtecksform, denkbar wäre auch ein Dreieck oder sogar ein Doppeldreieck.

Danke fürs Lesen und das Interesse!

alt text

Open in writeLaTeX
\documentclass[]{article}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{amsmath, amssymb}
\setlength{\parindent}{-1.5em} 
%===========
\begin{document}
%===========
\newcommand{\marker}[2]{% name, shift
    \tikz[overlay,remember picture] 
        {\node (m-#1) at (#2) {};}%
}

\pgfmathsetmacro{\flagscalefactor}{0.3}
\pgfmathsetmacro{\flagrotationdegree}{0}
\newcommand{\flagpolecolor}{brown!60!black}
\newcommand{\flagcolor}{yellow!67!red}
\newcommand{\flagsymbol}{:)}
\newcommand{\flagsymbolcolor}{black}
\newcommand{\flagadditionalcommands}{}

\newcommand{\tikzflag}[1][0,0]{% shift
    \begin{tikzpicture}[scale=\flagscalefactor, rotate=\flagrotationdegree,shift={(#1)},overlay,remember picture]
        \draw[fill=\flagpolecolor,thick] (0,0) -- ++ (0,8) arc (180:0:0.4 and 0.1) -- ++ (0,-8) arc (360:180:0.4 and 0.1);
        \draw[thick] (0,8) arc (180:360:0.4 and 0.1);
        \draw[fill=\flagcolor,thick] (0.8,7.5) to[out=-30,in=210] ++(3,0) to[out=30,in=150] ++ (3,0) -- ++ (0,-4.5) to [out=150,in=30] ++(-3,0) to[out=210,in=-30] ++(-3,0) -- cycle;
        \node[\flagsymbolcolor,fill=white,circle,thick,inner sep=1pt, draw,thin] (a) at (3.8,5.25) {\textbf{\flagsymbol}};
        \flagadditionalcommands
    \end{tikzpicture}
}

\newcommand{\hintflag}[1]{% name
    \pgfmathsetmacro{\flagscalefactor}{0.1}
    \pgfmathsetmacro{\flagrotationdegree}{0}
    \renewcommand{\flagpolecolor}{brown!60!black}
    \renewcommand{\flagcolor}{blue!50!cyan}
    \renewcommand{\flagsymbol}{\tiny $!$}
    \renewcommand{\flagsymbolcolor}{black}
    \marker{#1}{-1.9,-0.6}
    \tikzflag[m-#1]
}

\hintflag{} Der Text Neben der Flagge \\ geht hier weiter.

%===========
\end{document}
%===========

gefragt 21 Apr '14, 22:10

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

1

Inwiefern soll der Code denn einfacher werden? In seiner jetzigen Form ist er schon ziemlich minimal.

(03 Mai '14, 20:45) Henri

OK. Man weiß ja nie; vielleicht hat jmd. eine gute Idee.

(03 Mai '14, 21:49) cis

Wenn du nur eine einzelne Fahne zeichnen möchtest, dann kannst du auch tape aus der shapes.symbols library nehmen.

Open in writeLaTeX
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{shapes.symbols,calc}
\begin{document}
\tikz{%
  \node[
    tape,tape bend height=3pt,
    inner ysep=.1em,inner xsep=.75em,
    node font=\tiny\bfseries,
    fill=yellow!67!red
  ](fahne){?};
  \draw[
    very thick,line cap=round,brown!80!black
  ](fahne.north west)--($(fahne.north west)!3!(fahne.south west)$);
  }
\end{document}

alt text

Will man mehrere Fahnen einfügen, dann kann man auch ein pic mit mehr oder weniger vielen Einstellmöglichkeiten definieren.

Open in writeLaTeX
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{shapes.symbols,calc,quotes,babel}
\tikzset{
  pics/fahne/.style n args={3}{
  code={
    \node[
      tape,tape bend height=2pt,
      inner ysep=.1em,inner xsep=.75em,
      node font=\tiny\bfseries,
      pic actions,
      #1
      ](-fahne){\tikzpictext};
    \draw[very thick,line cap=round,#2](-fahne.north west)--($(-fahne.north west)!#3!(-fahne.south west)$)};
  },
}

\begin{document}
\tikz{
  \pic[draw,fill=yellow!50,rotate=-30,transform shape,"?"]
    {fahne={tape bend height=4pt}{brown!70!black}{2.5}};
  \pic[draw,fill=red!20,"!"]at (1,0)
    {fahne={inner xsep=.5em}{red!30!blue}{.8cm}};
  \pic[draw=blue!50!black,"Test",tape bend height=2pt]at (2,0)
    {fahne={inner xsep=2pt}{}{3}};
  }
\end{document}

alt text


Das geht natürlich auch mit einem Dreieck aus der shapes.geometric library

Open in writeLaTeX
\documentclass[tikz,margin=5mm]{standalone}
\usetikzlibrary{shapes.geometric,calc}
\begin{document}
\tikz{%
  \node[
    isosceles triangle,
    inner ysep=.1em,inner xsep=.75em,
    node font=\tiny\bfseries,
    fill=yellow!67!red
  ](fahne){?};
  \node[scale=0.65,circle,inner sep=1pt, 
    draw,fill=white!95!black, 
    font=\small\bfseries, 
  ] at (fahne) {?};
  \draw[
    very thick,line cap=round,brown!80!black
  ]([yshift=\pgflinewidth]fahne.north west)--($(fahne.north west)!3!(fahne.south west)$);
  }
\end{document}

alt text

Permanenter link

beantwortet 21 Mai '14, 22:40

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 22 Mai '14, 02:21

Geht vll. auch für eine "Dreiecksfahne"? :)))

Ich habe übr. mal sowas gemacht, damit man da Text in einem Kreis reinschreiben kann:


\begin{tikzpicture}
\node[scale=1.25, tape,tape bend height=3pt,
    inner ysep=.1em,inner xsep=.75em,
    fill=blue!75!cyan
  ](fahne){?};

\node[scale=0.65, circle, draw, fill=white!99!black, 
%font=\tiny\bfseries, 
pos=0.5] at (fahne) {H};

\draw[line width=2.5pt, ,line cap=round,brown!80!black]
(fahne.north west)--($(fahne.north west)!2!(fahne.south west)$);

\end{tikzpicture}

(22 Mai '14, 00:54) cis

@cis Ich hab da noch eine Dreiecksfahne ergänzt.

(22 Mai '14, 02:31) esdd

Aja, sehr schön. Irgendwas gab es meiner Erinnerung nach, daß man die Bilder so verzerren konnte, als würde auch die Dreeicksfahne im Wind flattern - ich muß0 mal schauen, ob ich das nochmal finde.

(22 Mai '14, 02:41) cis
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:

×730

gestellte Frage: 21 Apr '14, 22:10

Frage wurde gesehen: 5,814 Mal

zuletzt geändert: 22 Mai '14, 02:41