I define two points using \coordinate
, a and b.
Then I try to plot a circle with centre at a and radius given by a-b.
I made 3 attempts, see code below
- a little bit naif, does not work
- using https://tex.stackexchange.com/a/58287, does not work
- using https://tex.stackexchange.com/a/38500 this generates a circle with a huge radius.
Is there a way to make work any of the three? The simplest the better.
\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{calc,patterns,angles,quotes,intersections}
\makeatletter
\def\calcLength(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{center}}%
{\pgfpointanchor{#2}{center}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@xa}}%
\FPeval\@temp@b{\pgfmath@tonumber{\pgf@ya}}%
\FPeval\@temp@sum{(\@temp@a*\@temp@a+\@temp@b*\@temp@b)}%
\FProot{\FPMathLen}{\@temp@sum}{2}%
\FPround\FPMathLen\FPMathLen5\relax
\global\expandafter\edef\csname #3\endcsname{\FPMathLen}
}
\makeatother
\begin{document}
Attempt 1:
\begin{center}
\begin{tikzpicture}[]
\coordinate (a) at (0,0);
\coordinate (b) at (1.3,1.5);
\draw (a) circle (2);
\draw (a) circle ($(b)-(a)$);
\end{tikzpicture}
\end{center}
Attempt 2:
\begin{center}
\begin{tikzpicture}[]
\coordinate (a) at (0,0);
\coordinate (b) at (1.3,1.5);
\draw (a) circle (2);
% https://tex.stackexchange.com/a/58287
\draw
let
\p1 = (a),
\p2 = (b),
\n1 = {veclen((\x2-\x1),(\y2-\y1))}
(a) circle ({\n1});
\end{tikzpicture}
\end{center}
Attempt 3:
\begin{center}
\begin{tikzpicture}[]
\coordinate (a) at (0,0);
\coordinate (b) at (1.3,1.5);
\draw (a) circle (2);
% https://tex.stackexchange.com/a/38500
\calcLength(a,b){mylen}
\draw (a) circle (\mylen);
\end{tikzpicture}
\end{center}
\end{document}