\documentclass{standalone} % \usepackage{tikz} \usetikzlibrary{bending,arrows.meta} \usepackage{tkz-euclide} \usetkzobj{all} \usepackage{xcolor} \definecolor{earth}{HTML}{0089FA} % \title{Rolling circle squares itself} \begin{document} \begin{tikzpicture}[>={[inset=0,angle'=27]Stealth}] \begin{scope}[decoration={markings,mark=at position 0 with {\arrow[scale=2]{<}};}] %it: definizione dei punti: A, centro della prima circonferenza; B, punto passante per la prima circonferenza; F, punto passante per la freccia che indica la rotazione della prima circonferenza \tkzDefPoint(0,0){A} \tkzDefPoint(0,5){B} \tkzDefPoint(0,5.5){f} %it: Calcolo del raggio \tkzCalcLength[cm](A,B) \tkzGetLength{rAB} %it: disegno della prima circonferenza \tkzDrawCircle[R,ultra thick](A,\rAB cm) %it: disegno della direzione di rotazione \tkzDrawArc[rotate,postaction={decorate},color=black,ultra thick](A,f)(-30) \tkzDrawPoints[fill=black](B) %it: segmento AB \tkzDrawSegment[style=dashed,ultra thick](A,B) %it: intersezione tra il segmento AB e la circonferenza di centro A e passante per B; si memorizzano i due punti di intersezione. Quello che servirà dopo è D \tkzInterLC(A,B)(A,B) \tkzGetPoints{D}{E} %it: determinazione della retta ortogonale ad AB passante per A \tkzDefLine[orthogonal=through A](B,A) \tkzGetPoint{F} %it: intersenzione tra la retta AF e la circonferenza di centro A e passante per B; si memorizzano i due punti di intersezione. Quello che servirà dopo è G \tkzInterLC(A,F)(A,B) \tkzGetPoints{G}{H} %it: segmento AG \tkzDrawSegment[style=dashed,ultra thick](A,G) %en: translation %it: traslazione %it: calcolo della circonferenza \pgfmathsetmacro{\tkzCirc}{3.14 * \rAB} %it: definizione del centro del secondo cerchio \tkzDefPoint(\tkzCirc,0){A'} %it: traslazione da A ad A' del punto B in B1 \tkzDefPointsBy[translation= from A to A'](B){B1} %it: rotazione intorno ad A' verso il basso di 180° di B1 che diventa così B2 \tkzDefPointBy[rotation= center A' angle -180](B1) \tkzGetPoint{B2} %it: calcolo del raggio del secondo cerchio \tkzCalcLength[cm](A',B2) \tkzGetLength{rABt} %it: secondo cerchio \tkzDrawCircle[R,ultra thick](A',\rABt cm) \tkzDrawPoints[fill=black](B2) %it: segmento A'B2 \tkzDrawSegment[style=dashed,ultra thick](A',B2) %it: traslazione e rotazione di G in G2 \tkzDefPointsBy[translation= from A to A'](G){G1} \tkzDefPointBy[rotation= center A' angle -180](G1) \tkzGetPoint{G2} %it: segmento A'G2 \tkzDrawSegment[style=dashed,ultra thick](A',G2) %it: retta di rotazione \tkzDrawLine[color=earth,add = 0.4 and 0.7,ultra thick](D,B2) %it: tangente alla seconda circonferenza in G2 \tkzTangent[at=G2](A') \tkzGetPoint{t} %it: intersezione tra la tangente in G2 e la retta di rotazione; si prende il punto di intersezione \tkzInterLL(G2,t)(D,B2) \tkzGetPoint{I} %it: segmento G2I \tkzDrawSegment[style=dashed,ultra thick](G2,I) %it: determinazione del centro della circonferenza di quadratura \tkzDefMidPoint(D,I) \tkzGetPoint{O} %it: arco della circonferenza di quadratura di centro O e passante per D e I \tkzDrawArc[style=dashed,color=black,ultra thick](O,D)(I) %it: intersezione tra la retta A'B2 e la circonferenza di quadratura; si memorizzano i punti di intersezione, per poi utilizzare b \tkzInterLC(A',B2)(O,I) \tkzGetPoints{a}{b} %it: definizione del quadrato a partire dal lato B2b \tkzDefSquare(B2,b) \tkzGetPoints{c}{d} %it: disegno del quadrato che quadra il primo cerchio \tkzDrawPolygon[ultra thick](B2,b,c,d) \end{scope} \end{tikzpicture} \end{document}