Arbelo di Archimede: in greco è il trincetto da calzolaio.
La lunghezza del suo contorno è uguale alla circonferenza di diamentro AB.
La sua superficie è equiestesa all’area del cerchio di diametro CD.
- Mouse (posizione orizzontale): cambia la figura
- Mouse (tasto): rivela la proprietà
- Applicazione Java
color fSfondo,
fPrimo,
fSecondo,
sPrimo,
sSecondo,
cLettere;
int dx, dy;
float Ax, Bx, Cx, Dx, ACx, CBx, CDx, CCx, // ascisse
Ay, By, Cy, Dy, ACy, CBy, CDy, CCy, // ordinate
CCr, ACr, CBr, CDr; // raggi
PFont fontLettere;
void setup()
{
size(500, 300);
ellipseMode(RADIUS);
smooth();
fontLettere = loadFont("C16.vlw");
textFont(fontLettere);
textAlign(CENTER);
fSfondo =color(255, 255, 255);
fPrimo =color(0, 0, 0);
sPrimo =color(0);
fSecondo=color(0, 255, 0, 50);
sSecondo=color(0, 255, 0);
cLettere=color(0, 0, 255);
dx=width;
dy=height;
CCx=dx/2;
CCy=dy*0.9;
CCr=dx*0.42;
Ax=CCx-CCr;
Ay=CCy;
Bx=CCx+CCr;
By=CCy;
Cy=CCy;
ACy=CCy;
CBy=CCy;
noLoop();
}
void mousePressed() { redraw(); }
void mouseMoved() { redraw(); }
void mouseDragged() { redraw(); }
void aggiorna()
{
Cx=constrain(mouseX, Ax, Bx);
ACx=(Ax+Cx)/2;
CBx=(Cx+Bx)/2;
Dx=Cx;
Dy=CCy-CCr*sin(acos((Cx-CCx)/CCr));
CDx=Cx;
CDy=(Cy+Dy)/2;
ACr=(Cx-Ax)/2;
CBr=(Bx-Cx)/2;
CDr=(Cy-Dy)/2;
}
void draw()
{
aggiorna();
background(fSfondo);
smooth();
noStroke();
fill(fPrimo);
arc(CCx, CCy, CCr, CCr, PI, TWO_PI);
strokeWeight(2);
stroke(fSfondo);
fill(fSfondo);
arc(ACx, ACy, ACr, ACr, PI, TWO_PI);
arc(CBx, CBy, CBr, CBr, PI, TWO_PI);
if(mousePressed)
{
strokeWeight(1);
stroke(sSecondo);
fill(fSfondo);
arc(ACx, ACy, ACr, ACr, PI, TWO_PI);
arc(CBx, CBy, CBr, CBr, PI, TWO_PI);
line(Ax, Ay, Bx, By);
line(Cx, Cy, Dx, Dy);
strokeWeight(2);
fill(fSecondo);
ellipse(CDx, CDy, CDr, CDr);
stroke(cLettere);
fill(cLettere);
ellipse(Ax, Ay, 2, 2);
ellipse(Bx, By, 2, 2);
ellipse(Cx, Cy, 2, 2);
ellipse(Dx, Dy, 2, 2);
text("A", Ax-20, Ay+20);
text("B", Bx+20, By+20);
text("C", Cx , Cy+20);
if(Dx > CCx ) text("D", Dx+20, Dy-10);
else if(Dx == CCx) text("D", Dx , Dy-10);
else text("D", Dx-20, Dy-10);
}
}