$\textsf\bf{\(%v\)}$

$\textsf{Unravel the circumference}$

#4D4D4D

\text{SOLUTION\\
This is the solution}

#006758

#B00020

#252525

#757575

#949494

#E44461

#DA2570

#E66B9E

#3A6ED6

#5991FF

#008475

#0F8538

#00a83c

#5145A8

#6557D2

#8575FF

#903D14

#BD6C43

#C75000

#E07415

#eeeeee

#2E006758

#2EB00020

\text{Número de partes}

\(\begin{align}\mbox\textsf{Área del paralelogramo}&=\mbox\textsf{base \times altura}\ A&=bh\ A&\approx\pi r\times r \end{align}\)

\textsf{Área del círculo } \(=\pi r^2\)}

\text{Círculo}

\text{Paralelogramo}

$\textsf{r}$

$\textbf{\(r\)}$

\text{Animar}

numSections = 10 (slider from 6 to 50, step 2)
moveSlider = 0 (slider from 0 to 2, step 0.1)
PStart: (0, 0)
numSemiSections: numSections / 2
theta: (2 * pi / numSections)
baseLength: sqrt(2 - (2 * cos(theta)))
stage1 = Min(moveSlider, 1)
variableRadius: 1 / (1 - stage1)
sectorArcLength: ((2 * variableRadius) * asin(((0.5 * baseLength)) / variableRadius))
sectorCenterAngle: sectorArcLength / variableRadius
PCenter: (0, variableRadius)
stage2 = Max(0, (((moveSlider - 1) * 3) * pi / 2))
triHeight: cos(theta / 2)
phi: ((1 - stage1) * theta / 2)
movePosStage1 = Sequence(If[stage1 < 1, Rotate[PStart, (sectorCenterAngle * i), PCenter], (x(PStart) + (baseLength * i), y(PStart))], i, 0, numSections)
BreakPoint: movePosStage1(numSections / 2 + 1)
PRotateCenter = Rotate(BreakPoint - (0.5, 0), ((-(pi - theta))) / 2, BreakPoint)
RotateEnd1 = Rotate(BreakPoint, Min[stage2, pi], PRotateCenter)
rotate2Direction = If(stage2 ≤ pi, Vector[UnitVector[Vector[BreakPoint - (0.5, 0), RotateEnd1]]], Vector[Rotate[(0, -1), stage2, (0, 0)]])
movePosStage2 = Join({Sequence[((A * baseLength), 0), A, 0, numSemiSections], Sequence[RotateEnd1 + ((baseLength * A) * rotate2Direction), A, 0, numSemiSections]})
movePos = If(stage2 ≟ 0, movePosStage1, movePosStage2)
PEnd: (sin((2 * (pi * (1 - stage1)))) / (1 - stage1), (1 - cos((2 * (pi * (1 - stage1))))) / (1 - stage1))
currentAngle = Angle(PStart, PCenter, PEnd)
pixelsRight: 16
pixelsLeft: 16
pixelsBottom: 16
pixelsTop: 24
borderBox = Polygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}])
unrolledCircumference = Segment(PStart, PStart + ((2 * pi), 0))
moveSectorsAll = Sequence(CircleSector[Midpoint[movePos(i), movePos(i + 1)] + (triHeight * UnitOrthogonalVector[Segment[movePos(i), movePos(i + 1)]]), movePos(i), movePos(i + 1)], i, 1, Length[movePos] - 1)
circUnravel = CircleArc(PCenter, PStart, PEnd)
moveSectorsColor1 = Take(moveSectorsAll, 1, numSemiSections)
moveSectorsColor2 = Take(moveSectorsAll, Length[moveSectorsAll] - numSemiSections + 1)
moveSectorsOutline1: moveSectorsColor1
moveSectorsOutline2: moveSectorsColor2
parallelogramShape = Polygon({movePos(1), movePos(numSemiSections + 1), movePos(numSemiSections + 2), movePos(-1)})
speed: 1
tabOrder: {textCircleArea, numSections, moveSlider, textParallelogram}
StartRadius = If(moveSlider < 2, PStart - (1.2, 0), (x(Vertex[parallelogramShape, 4]) - 0.2, 0))
segRadius = Segment(StartRadius, StartRadius + (0, 1))
lblCirc: {Text["\text{\(\pi r\)}", (pi, 0), true, true, 0, -1], Text["\text{\(2\pi r\)}", ((2 * pi), 0), true, true, 0, -1]}
segToPi = Segment((0, 0), (pi, 0))

Tool: PixelsToPoint
PixelsToPoint(Corner1,Corner3,Corner5,PixelCoords)
Input: Corner1, Corner3, Corner5, InputPixels
Output: OutputPoint

InputPixels: (100, 200)
xRight: x(Corner3)
xLeft: x(Corner1)
yTop: y(Corner3)
yBottom: y(Corner1)
yCoord: yTop - (y(InputPixels) / y(Corner5) * (yTop - yBottom))
xCoord: (x(InputPixels) / x(Corner5) * (xRight - xLeft)) + xLeft
OutputPoint: (xCoord, yCoord)

Tool: PixelsToPoint (command PixelsToPoint1)
PixelsToPoint(Corner1,Corner3,Corner5,PixelCoords)
Input: Corner1, Corner3, Corner5, InputPixels
Output: OutputPoint

InputPixels: (100, 200)
xRight: x(Corner3)
xLeft: x(Corner1)
yTop: y(Corner3)
yBottom: y(Corner1)
yCoord: yTop - (y(InputPixels) / y(Corner5) * (yTop - yBottom))
xCoord: (x(InputPixels) / x(Corner5) * (xRight - xLeft)) + xLeft
OutputPoint: (xCoord, yCoord)