Hallo!

Ich zeichne in folgendem Plot die Winkel (absichtlich) von Hand (Möglichkeiten über die angle-Lib sind bekannt). Wie setze ich am besten die Winkelbeschriftungen, so daß sie bei Änderung des scale-Faktors an der gewünschten Stelle bleiben.

scale = 2.5 :)

alt text

scale = 1.75 :(

alt text

Open in writeLaTeX
\documentclass[varwidth, margin=5pt]{standalone}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{calc, plotmarks}
\usepackage{amsmath, amssymb}
   \pagecolor{green!50!yellow!50!white}
%===========
\begin{document}
%===========
\def\scala{1.75}
\begin{tikzpicture}[>=latex, font=\footnotesize, scale=\scala]

%Koordinaten
\coordinate (O) at (0,0);
\coordinate (P) at ($({cos(50)},{sin(50)})$);
\coordinate (Q) at (-1,0);

%Strecken
\draw[] (O) -- (P) -- (Q) --(O);

%Winkel
\draw[very thin, red] ([shift=(0:0.5)]Q)  arc (0:25:0.5) node[xshift=-0.4cm, yshift=-0.35cm]{$\varrho$};

\draw[very thin, red] ([shift=(205:0.4)]P)  arc (205:230:0.4) node[xshift=0.15cm, yshift=0.4cm]{$\varrho$};

\draw[<->, very thin, red] ([shift=(50:0.25)]O)  arc (50:180:0.25) node[xshift=0.0cm, yshift=0.5cm]{$\chi$};

%Punkte
\draw[] plot[mark=*, mark size=1.5pt/\scala, mark options={fill=white}] coordinates{(O)} node[left=5pt, below]{$O$};
\draw[] plot[mark=*, mark size=1.5pt/\scala, mark options={fill=white}] coordinates{(P)} node[above]{$P$};
\draw[] plot[mark=*, mark size=1.5pt/\scala, mark options={fill=white}] coordinates{(Q)} node[above=5pt, left]{$Q$};
\end{tikzpicture}
%===========
\end{document}
%===========

gefragt 19 Jul '14, 17:55

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%


Ich vermute mal, dass du nicht nur die angle library sondern überhaupt die Möglichkeiten (Stichwort pic) von TikZ/pgf 3.0 nicht verwenden möchtest, da diese auf dem matheplanet.de noch nicht verwendbar sind.

Wenn die Beschriftungen beim Skalieren ihre relative Position behalten sollen, dann musst du sie relativ zu den Eckpunkten positionieren bzw. darfst nur Dinge verwenden, die entsprechend mitskaliert werden. In meinem Vorschlag nutze ich distance modifier (bitte in der Doku nachlesen)

Open in writeLaTeX
\node[red]at($($(Q)!.4cm!(P)$)!0.5!($(Q)!.4cm!(O)$)$){$\varrho$};

Dabei wird auf jedem Schenkel des Winkels bei Q ein Punkt im Abstand von .4cm (wird mit skaliert) von Q ermittelt und der Nodeninhalt in die Mitte zwischen diesen beiden Punkten gesetzt.

Ansonsten habe ich mir in deinem Code das Leben etwas erleichtert, in dem ich die Winkelmarkierungen bei P und Q einfach als Kreise zeichne und das überstehende wegclippe. Bei O geht das leider wegen der von dir verwendeten Pfeile nicht.

Die Punktmarkierungen lassen sich auch einfach direkt zeichnen, dafür muss man nicht erst die plotmarks library laden.

Open in writeLaTeX
\documentclass[varwidth, margin=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{amssymb}
\pagecolor{green!50!yellow!50!white}

\newcommand\scala{}
\newcommand\winkel{}

\newcommand*\Dreieck[3][.5]{%
  \def\scala{#3}
  \def\winkel{#2}
  \begin{tikzpicture}[>=latex, font=\footnotesize, scale=\scala]
    % Koordinaten
    \coordinate (O) at (0,0);
    \coordinate (P) at (\winkel:1);
    \coordinate (Q) at (-1,0);
    % Strecken und Winkel
    \begin{scope}% clippen lokal halten
      \clip [preaction=draw] (O) -- (P) -- (Q) --cycle;
      \foreach \p in {Q,P}\draw[red,very thin](\p)circle[radius=.5];
    \end{scope}
    % wegen der Pfeile extra:
    \draw[<->,very thin,red]([shift=(\winkel:0.25)]O)arc(\winkel:180:0.25);
    % Winkelbeschriftung
    \node[red]at($($(Q)!.4cm!(P)$)!0.5!($(Q)!.4cm!(O)$)$){$\varrho$};
    \node[red]at($($(P)!.4cm!(Q)$)!0.5!($(P)!.4cm!(O)$)$){$\varrho$};
    \node[red]at({90+#1*\winkel}:0.35){$\chi$};
    \node[blue]at({90+#1*\winkel}:0.17){$\chi$};
    % Punkte
    \foreach \p/\l in {O/below left,P/above,Q/above left}
      \draw[fill=white] 
        (\p)node[\l,inner xsep=2pt]{\p}circle[radius={1pt/\scala}];
  \end{tikzpicture}%
}

\begin{document}
\Dreieck{50}{1.75}

\Dreieck{50}{2.5}

\Dreieck{50}{4}
\end{document}

Mit dem optionalen Argument könntest du das Chi noch verschieben. Ich habe es jetzt auf die Winkelhalbierende gesetzt, in zwei verschiedenen Abständen, je nach dem, ob es wirklich außerhalb der Winkelmarkierung stehen soll. Bei den beiden rho habe ich es für sinnvoller gehalten, für beide gleiche Abstände zu nehmen.

alt text

Permanenter link

beantwortet 19 Jul '14, 20:10

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

Aja super - gar nicht so einfach mit dem 'distance modifier'. Ich benutze ganz gern die 'plotmarks'-Punkte, weil man da viele Einstellungsmöglichkeiten hat, hier wäre es nicht zwingend nötig gewesen ;)

(20 Jul '14, 09:13) 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:

×728

gestellte Frage: 19 Jul '14, 17:55

Frage wurde gesehen: 8,702 Mal

zuletzt geändert: 20 Jul '14, 09:13