# Vediamo come si può, in modo semplice, calcolare l'area della superficie racchiusa # da una curva che sappiamo esprimere solo in forma cartesiana (esistono anche delle # tecniche molto sofisticate per farlo con dei metodi analitici) # Consideriamo ad esempio la curva x^2 + y^4 + x*y - y^3 = 5 f = function(x,y) x^2+y^4+x*y-y^3-5 PIANO(-3,3, -3,3) curva(f, "black") # Ottengo la figura sotto a sinistra (senza i pallini rossi) # Col comando startP() predispondo il programma a memorizzare i punti che clicco # col comando, già visto, P(). startP() P() # xP <- -2.8371324; yP <- 1.2217254 # E così via, cliccando su punti che approssimino il contorno (sono i punti segnati # in rosso; il programma li segna in grigio chiaro) # I punti vengono memorizzati in xClick e yClick, che se voglio visualizzo: xClick # -2.8371324 -1.9710328 -1.6954557 -1.1705468 -0.2913244 # 0.8503524 1.9526610 2.4250790 2.4250790 1.6639611 # 1.0078250 -0.1600972 -1.2492831 -2.2597327 -2.7321507 yClick # 1.2217254 -0.5235966 -0.8122965 -1.0616282 -1.2847145 # -1.3372053 -1.1797327 -0.9304010 -0.4054921 1.1692345 # 1.6022843 1.8516160 1.8909842 1.7335115 1.5366707 # Se voglio vederli meglio aziono: PUNTI(xClick,yClick,"red") # A questo punto aziono il comando, già visto, areaPol areaPol(xClick,yClick) # 12.79085 Questa è l'area, approssimata, della superficie (prendo 12.8) # Volendo tartteggio l'area del poligono (vedi figura sopra a destra), con spezzaL spezzaL(xClick,yClick,45,"blue") # # Volendo trovare le intersezioni con gli assi posso procedere con degli zoom # e con dei calcoli di valori di f. Ad es. 2 punti sono (-2.236068,0) e (0,1.823974). Piano(-2.3,-2.2, -1e-1,1e-1); curva(f, "black") # ecc. f(-2.236068,0) # 1.00624e-07 f(0,1.823974) # -6.51954e-06