Anonymous 1123
I am tring to draw the circle passing through three points `O, A, B`. I tried
```
\begin{scope}[canvas is xy plane at z=0]
\draw[red] (I) circle[radius=\r] ;
\end{scope}
```
I got correct result. If I used
```
\pgfmathsetmacro{\Angle}{acos(\r/\R)};
\begin{scope}[shift={(T)}]
\tdplotCsDrawLatCircle[]{\r}{{-\Angle}}
```
I got incorrect result. How can I choose `\Angle` to draw circle?
My code
```
\documentclass[border=2mm,12pt,tikz]{standalone}
\usepackage{tikz-3dplot-circleofsphere}
\usepackage{fouriernc}
\usetikzlibrary{calc}
\usetikzlibrary{3dtools}
\usetikzlibrary{fpu}
\def\pgfmathsetmacroFPU#1#2{\begingroup%
\pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}%
\pgfmathsetmacro{#1}{#2}%
\pgfmathsmuggle#1\endgroup}%
\begin{document}
\tdplotsetmaincoords{65}{70}
\begin{tikzpicture}[tdplot_main_coords,scale=1,line join = round, line cap = round,declare function={a=5;xA=a;yA=0;zA=0;xB=0;yB=a;zB=0;xC=0;yC=0;zC=a;}]
\path
(0,0,0) coordinate (O)
(xA,yA,zA) coordinate (A)
(xB,yB,zB) coordinate (B)
(xC,yC,zC) coordinate (C)
({-((-xC*xC*yB*zA +xB*xB*yC*zA + yB*yB* yC* zA - yB* yC*yC* zA + xC*xC* yA* zB - xA*xA *yC* zB - yA*yA* yC *zB + yA* yC*yC *zB - yC* zA*zA *zB + yC *zA* zB*zB - xB*xB* yA* zC + xA*xA *yB* zC + yA*yA *yB* zC - yA *yB*yB* zC + yB* zA*zA *zC - yA *zB*zB* zC - yB* zA* zC*zC + yA* zB* zC*zC)/(2* (xC* yB* zA - xB* yC* zA - xC* yA *zB + xA* yC *zB + xB *yA* zC - xA* yB* zC)))},{ -((-xB*xB* xC* zA + xB* xC*xC* zA - xC* yB*yB* zA + xB* yC*yC* zA + xA*xA *xC* zB - xA* xC*xC *zB + xC* yA*yA *zB - xA* yC*yC* zB + xC *zA*zA *zB - xC *zA* zB*zB - xA*xA* xB* zC + xA*xB*xB* zC - xB* yA*yA* zC + xA* yB*yB* zC - xB* zA*zA* zC + xA* zB*zB *zC + xB*zA *zC*zC - xA* zB* zC*zC)/(2 *(xC* yB* zA - xB* yC* zA - xC* yA* zB + xA *yC*zB + xB* yA* zC - xA* yB* zC)))}, {-((xB*xB* xC* yA - xB* xC*xC *yA - xA*xA *xC*yB + xA* xC*xC* yB - xC* yA*yA* yB + xC* yA* yB*yB + xA*xA *xB*yC - xA*xB*xB *yC + xB *yA*yA* yC - xA* yB*yB* yC - xB*yA* yC*yC + xA *yB* yC*yC - xC* yB *zA*zA + xB* yC *zA*zA + xC* yA *zB*zB - xA *yC* zB*zB - xB *yA *zC*zC + xA* yB* zC*zC)/(2* (xC* yB* zA - xB* yC* zA - xC* yA* zB + xA* yC *zB + xB* yA* zC - xA* yB* zC)))}) coordinate (T)
({(-xB*xB*yA + (xA*xA + yA*(yA - yB))*yB)/(-2*xB*yA + 2*xA*yB)}, {(xA*xA*xB + xB*yA*yA - xA*(xB*xB + yB*yB))/(2*xB*yA - 2*xA*yB)}) coordinate (I);
\foreach \p in {O,A,B,C,T,I}
{\draw[fill=black] (\p) circle (1.5pt);}
\foreach \p/\g in {O/90,A/60,B/-90,C/-90,T/90,I/90}
{\path (\p)+(\g:3mm) node{$\p$}; }
\pgfmathsetmacro{\R}{sqrt(TD("(T)-(O)o(T)-(O)")};
\pgfmathsetmacroFPU{\r}{1/2*sqrt((((xA*xA + yA*yA)* (xA*xA - 2 *xA *xB + xB*xB + (yA - yB)*(yA - yB))* (xB*xB + yB*yB))/((xB *yA - xA *yB)*(xB *yA - xA *yB)))) };
\begin{scope}[canvas is xy plane at z=0]
\draw[red] (I) circle[radius=\r] ;
\end{scope}
\begin{scope}[tdplot_screen_coords]
\draw (T) circle circle[radius=\R] ;
\end{scope}
\pgfmathsetmacro{\Angle}{acos(\r/\R)};
\begin{scope}[shift={(T)}]
\tdplotCsDrawLatCircle[]{\r}{{-\Angle}}
\end{scope}
\end{tikzpicture}
\end{document}
```
![ScreenHunter 792.png](/image?hash=250594f33052b23e9480d65ec88cd17885fc7aea8a957c3ed74a03eb526fb088)