2019-11-21 01:52:23 +01:00
\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] { <} } ;} ]
2019-11-21 10:16:51 +01:00
%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
2019-11-21 01:52:23 +01:00
\tkzDefPoint (0,0){ A} \tkzDefPoint (0,5){ B} \tkzDefPoint (0,5.5){ f}
2019-11-21 10:16:51 +01:00
%it: Calcolo del raggio
2019-11-21 01:52:23 +01:00
\tkzCalcLength [cm] (A,B) \tkzGetLength { rAB}
2019-11-21 10:16:51 +01:00
%it: disegno della prima circonferenza
2019-11-21 01:52:23 +01:00
\tkzDrawCircle [R,ultra thick] (A,\rAB cm)
2019-11-21 10:16:51 +01:00
%it: disegno della direzione di rotazione
2019-11-21 01:52:23 +01:00
\tkzDrawArc [rotate,postaction={decorate},color=black,ultra thick] (A,f)(-30)
\tkzDrawPoints [fill=black] (B)
2019-11-21 10:16:51 +01:00
%it: segmento AB
2019-11-21 01:52:23 +01:00
\tkzDrawSegment [style=dashed,ultra thick] (A,B)
2019-11-21 10:16:51 +01:00
%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
2019-11-21 01:52:23 +01:00
\tkzInterLC (A,B)(A,B) \tkzGetPoints { D} { E}
2019-11-21 10:16:51 +01:00
%it: determinazione della retta ortogonale ad AB passante per A
2019-11-21 01:52:23 +01:00
\tkzDefLine [orthogonal=through A] (B,A) \tkzGetPoint { F}
2019-11-21 10:16:51 +01:00
%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
2019-11-21 01:52:23 +01:00
\tkzInterLC (A,F)(A,B) \tkzGetPoints { G} { H}
2019-11-21 10:16:51 +01:00
%it: segmento AG
2019-11-21 01:52:23 +01:00
\tkzDrawSegment [style=dashed,ultra thick] (A,G)
2019-11-21 10:16:51 +01:00
%en: translation
%it: traslazione
%it: calcolo della circonferenza
2019-11-21 01:52:23 +01:00
\pgfmathsetmacro { \tkzCirc } { 3.14 * \rAB }
2019-11-21 10:16:51 +01:00
%it: definizione del centro del secondo cerchio
2019-11-21 01:52:23 +01:00
\tkzDefPoint (\tkzCirc ,0){ A'}
2019-11-21 10:16:51 +01:00
%it: traslazione da A ad A' del punto B in B1
2019-11-21 01:52:23 +01:00
\tkzDefPointsBy [translation= from A to A'] (B){ B1}
2019-11-21 10:16:51 +01:00
%it: rotazione intorno ad A' verso il basso di 180° di B1 che diventa così B2
2019-11-21 01:52:23 +01:00
\tkzDefPointBy [rotation= center A' angle -180] (B1)
\tkzGetPoint { B2}
2019-11-21 10:16:51 +01:00
%it: calcolo del raggio del secondo cerchio
2019-11-21 01:52:23 +01:00
\tkzCalcLength [cm] (A',B2) \tkzGetLength { rABt}
2019-11-21 10:16:51 +01:00
%it: secondo cerchio
2019-11-21 01:52:23 +01:00
\tkzDrawCircle [R,ultra thick] (A',\rABt cm)
\tkzDrawPoints [fill=black] (B2)
2019-11-21 10:16:51 +01:00
%it: segmento A'B2
2019-11-21 01:52:23 +01:00
\tkzDrawSegment [style=dashed,ultra thick] (A',B2)
2019-11-21 10:16:51 +01:00
%it: traslazione e rotazione di G in G2
2019-11-21 01:52:23 +01:00
\tkzDefPointsBy [translation= from A to A'] (G){ G1}
\tkzDefPointBy [rotation= center A' angle -180] (G1)
\tkzGetPoint { G2}
2019-11-21 10:16:51 +01:00
%it: segmento A'G2
2019-11-21 01:52:23 +01:00
\tkzDrawSegment [style=dashed,ultra thick] (A',G2)
2019-11-21 10:16:51 +01:00
%it: retta di rotazione
2019-11-21 01:52:23 +01:00
\tkzDrawLine [color=earth,add = 0.4 and 0.7,ultra thick] (D,B2)
2019-11-21 10:16:51 +01:00
%it: tangente alla seconda circonferenza in G2
2019-11-21 01:52:23 +01:00
\tkzTangent [at=G2] (A') \tkzGetPoint { t}
2019-11-21 10:16:51 +01:00
%it: intersezione tra la tangente in G2 e la retta di rotazione; si prende il punto di intersezione
2019-11-21 01:52:23 +01:00
\tkzInterLL (G2,t)(D,B2) \tkzGetPoint { I}
2019-11-21 10:16:51 +01:00
%it: segmento G2I
2019-11-21 01:52:23 +01:00
\tkzDrawSegment [style=dashed,ultra thick] (G2,I)
2019-11-21 10:16:51 +01:00
%it: determinazione del centro della circonferenza di quadratura
2019-11-21 01:52:23 +01:00
\tkzDefMidPoint (D,I) \tkzGetPoint { O}
2019-11-21 10:16:51 +01:00
%it: arco della circonferenza di quadratura di centro O e passante per D e I
2019-11-21 01:52:23 +01:00
\tkzDrawArc [style=dashed,color=black,ultra thick] (O,D)(I)
2019-11-21 10:16:51 +01:00
%it: intersezione tra la retta A'B2 e la circonferenza di quadratura; si memorizzano i punti di intersezione, per poi utilizzare b
2019-11-21 01:52:23 +01:00
\tkzInterLC (A',B2)(O,I) \tkzGetPoints { a} { b}
2019-11-21 10:16:51 +01:00
%it: definizione del quadrato a partire dal lato B2b
2019-11-21 01:52:23 +01:00
\tkzDefSquare (B2,b) \tkzGetPoints { c} { d}
2019-11-21 10:16:51 +01:00
%it: disegno del quadrato che quadra il primo cerchio
2019-11-21 01:52:23 +01:00
\tkzDrawPolygon [ultra thick] (B2,b,c,d)
\end { scope}
\end { tikzpicture}
\end { document}