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 '19, 13:24

cis's gravatar image

cis
9.5k95459491
Akzeptiert-Rate: 29%

bearbeitet 09 Mär '19, 13: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 10 Mär '19, 00:12

Community's gravatar image

Community
21
Akzeptiert-Rate: 56%

bearbeitet 10 Mär '19, 01:35

Gel%C3%B6scht's gravatar image

Gelöscht
(ausgesetzt)

1

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

(10 Mär '19, 01: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 '19, 23: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.

(15 Mär '19, 01:11) Community
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 '19, 08:05) gast3
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:

×731
×3

gestellte Frage: 09 Mär '19, 13:24

Frage wurde gesehen: 4,608 Mal

zuletzt geändert: 15 Mär '19, 08:05