La superficie delle due lunule è equiestesa all’area del triangolo ABC.
- Mouse (posizione orizzontale): cambia la figura
- Mouse (tasto): rivela la proprietà
- Applicazione Java
color fSfondo, fPrimo, fSecondo, sPrimo, sSecondo, cLettere; int dx, dy; float xMIN, xMAX, yMAX, Ax, Bx, Cx, Ay, By, Cy, // triangolo rettangolo ABx, ACx, CBx, ABy, ACy, CBy, // punti medi ABr, ACr, CBr; // raggi semicirconferenze PFont fontLettere; void setup() { size(500, 350); 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; xMIN=dx*0.15; xMAX=dx*0.85; yMAX=dy*.87; Ax=xMIN; Ay=yMAX; Bx=xMAX; By=yMAX; ABx=dx/2; ABy=yMAX; ABr=dist(Ax, Ay, Bx, By)/2; noLoop(); } void mousePressed(){ redraw(); } void mouseMoved() { redraw(); } void mouseDragged(){ redraw(); } void aggiorna() { Cx=constrain(mouseX, Ax, Bx); Cy=Ay-ABr*sin(acos((Cx-ABx)/ABr)); ACx=(Ax+Cx)/2; ACy=(Ay+Cy)/2; ACr=dist(Ax, Ay, Cx, Cy)/2; CBx=(Cx+Bx)/2; CBy=(Cy+By)/2; CBr=dist(Cx, Cy, Bx, By)/2; } void draw() { aggiorna(); background(fSfondo); smooth(); noStroke(); fill(fPrimo); ellipse(ACx, ACy, ACr, ACr); ellipse(CBx, CBy, CBr, CBr); strokeWeight(2); stroke(fSfondo); fill(fSfondo); ellipse(ABx, ABy, ABr, ABr); quad(0, yMAX, dx, yMAX, dx, dy, 0, dy); if(mousePressed) { strokeWeight(1); stroke(sSecondo); fill(fSfondo); ellipse(ABx, ABy, ABr, ABr); stroke(fSfondo); quad(0, yMAX, dx, yMAX, dx, dy, 0, dy); strokeWeight(2); stroke(sSecondo); fill(fSecondo); triangle(Ax, Ay, Bx, By, Cx, Cy); stroke(cLettere); fill(cLettere); ellipse(Ax, Ay, 2, 2); ellipse(Bx, By, 2, 2); ellipse(Cx, Cy, 2, 2); text("A", Ax-20, Ay+20); text("B", Bx+20, By+20); if(Cx > ABx+100) text("C", Cx+20, Cy-20); else if(Cx < ABx-100) text("C", Cx-20, Cy-20); else text("C", Cx , Cy-20); } }