In folgendem Bsp. entsteht der Punkt S als intersection.

alt text

Gibt es eine Möglichkeit, seine kartesischen oder besser noch Polarkoordinaten auszulesen und als macro abzuspeichern? Etwa \pgfmathsetmacro\Radius{...} und \pgfmathsetmacro\Winkel{...}

Öffne in Overleaf
\documentclass[margin=5pt, tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[]
\draw[name path=strecke] (0,0) -- (2,2);
\draw[name path=kreis] (1,1) circle[radius=1];
\path[name intersections={of=strecke and kreis, name=S}] ;

\fill[red] (S-1) circle (2pt) node[right]{S};
\draw[] (0,0) circle (2pt);
\end{tikzpicture}
\end{document}

gefragt 09 Mär, 07:24

cis's gravatar image

cis
9.0k18193308
Akzeptiert: 69%

bearbeitet 09 Mär, 07:26


Sicher. Du lädst ja bereits calc.

Öffne in Overleaf
\documentclass[margin=5pt, tikz]{standalone}
\usetikzlibrary{calc}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[]
\draw[name path=strecke] (0,0) -- (2,2);
\draw[name path=kreis] (1,1) circle[radius=1];
\path[name intersections={of=strecke and kreis, name=S}] ;

\fill[red] (S-1) circle (2pt) node[right]{S};
\draw[] (0,0) circle (2pt);
\path let \p1=(S-1),\n1={veclen(\y1,\x1)},\n2={atan2(\y1,\x1)} in
(S-1) node[right=12pt,text width=4cm]{Mein Radius ist \n1 und mein
Winkel\pgfmathsetmacro{\Winkel}{\n2} % um die pt abzustreifen
\Winkel, also sind meine Polarkoordinaten $(\Winkel:\mbox{\n1})$. Wenn Du Dich
fragst, was das in cm ist: $r=\pgfmathparse{\n1*1pt/1cm}\pgfmathresult\,$cm.  Und
meine  kartesischen Koordinaten sind einfach
$x=\pgfmathparse{\x1*1pt/1cm}\pgfmathresult\,$cm und
$y=\pgfmathparse{\y1*1pt/1cm}\pgfmathresult\,$cm.};
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 09 Mär, 18:12

Murmeltier's gravatar image

Murmeltier
2.4k64

bearbeitet 09 Mär, 19:35

1

Sehr gut. Willst Du vll. noch die kartesischen Koordinaten bei Deiner AW ergänzen?

(09 Mär, 19:15) cis

Ich möchte hier etwas Wichtiges anmerken: Die Werte anzeigen, nur so zur Info, schön und gut. Sollen die Werte allerdings weiterverwendet werden in anderen Konstruktionen, sind harte Maßnahmen nötig. Ich habe rausgefunden, das geht mit \pgfkeys{/tikz/savevalue/.code 2 args={\global\edef#1{#2}}} und dann savevalue={\<name>}{\<name von calc>}.

(14 Mär, 18:58) cis
1

@cis Ja, klar. In TeX sind die Macros lokal. Du kannst sie global machen, wie Du es vorschlägst (\xdef ist kürzer als \global\edef) oder aus der Gruppe rausschmuggeln. In sehr vielen Fällen kannst Du die Dinge direkt in dem \path erledigen, dann reichen lokale Macros aus.

(14 Mär, 20:11) Murmeltier
1

@cis: Die Sache mit der Frage, wie man die lokalen Werte aus ihrem lokalen Umfeld in die Welt hinaus bringt, hatten wir doch früher schon (IMHO mehrfach), beispielsweise in TikZ: Wie kann ich durch 'calc' vorgegebene Größen für weitere Berechnung verwenden?.

(15 Mär, 03:05) Ijon Tichy
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:

×651
×2

Frage gestellt: 09 Mär, 07:24

Frage wurde angeschaut: 321 Mal

Zuletzt aktualisiert: 15 Mär, 03:05