# Copia tutto il file, incollalo in R e vedi che cosa succede dev.new(width=4,height=4,xpos=5) par( mai=c(0.5,0.5,0.2,0.2)) x11 <- 0; x12 <- 10; y11 <- 0; y12 <- 10 plot(c(x11,x12),c(y11,y12),type="n",xlab="", ylab="",fg="white",xaxt="n",yaxt="n") scr <- "clicca questa finestra" text(4.8,8,"Dal grafico della velocità al",cex=1.2,font=2,col="blue") text(4.8,6.8,"passare del tempo",cex=1.2,font=2,col="blue") text(4.8,5.6,"a quello",cex=1.2,font=2) text(4.8,4.4,"della strada complessivamente",cex=1.2,font=2,col="blue") text(4.8,3.2,"percorsa al passare del tempo.",cex=1.2,font=2,col="blue") # dev.new(width=4,height=4,xpos=405) par( mai=c(0.5,0.5,0.2,0.2)) x11 <- 0; x12 <- 10; y11 <- 0; y12 <- 10 plot(c(x11,x12),c(y11,y12),type="n",xlab="", ylab="",fg="white",xaxt="n",yaxt="n") text(4.8,8,"Ipotizziamo di essere in una",cex=1.2,font=2) text(4.8,6.8,"situazione ideale",cex=1.2,font=2,col="blue") text(4.8,5.6,"in cui la velocità possa",cex=1.2,font=2) text(4.8,4.4,"cambiare bruscamente.",cex=1.2,font=2) text(4.8,3.2,"In realtà, se non in caso di urti,",cex=1.2,font=2) text(4.8,2.0,"la cosa non accade.",cex=1.2,font=2) fig02 <- recordPlot(); title(scr,cex.main=0.8,col="blue") for(i in 1) locator(1); replayPlot(fig02) # il for(i in 1) serve solo affinche' locator attenda la pressione # del mouse senza scrivere le coordinate del punto cliccato (all' # interno di un ciclo locator non visualizza le coordinate) # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=5) par( mai=c(0.5,0.5,0.2,0.2)) x11 <- 0; x12 <- 15; y11 <- 0; y12 <- 50 plot(c(x11,x12),c(y11,y12),type="n",xlab="", ylab="") h <- function(x) ifelse(x < 3,10,ifelse(x < 5,10+20*(x-3),ifelse(x < 10,50-10*(x-5),0))) abline(v=seq(1,15,1),h=seq(5,50,5),col="grey95",lty=3) abline(v=seq(1,15,1),h=seq(10,50,10),col="blue",lty=3) abline(h=0,v=0,col="blue") plot(h,x11,x12,n=1000,add=TRUE) text(5.9,43," vel. (m/s) in funz. di t (s)",adj=0,cex=1,font=2) text(13.5,2,"s",font=2); text(0.8,48.5,"m/s",font=2) fig01 <- recordPlot(); title(scr,cex.main=0.8); for(i in 1) locator(1); replayPlot(fig01) # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=405) par( mai=c(0.5,0.5,0.2,0.2)) x11 <- 0; x12 <- 15; y21 <- 0; y22 <- 250 plot(c(x11,x12),c(y21,y22),type="n",xlab="", ylab="") abline(v=seq(1,15,1),h=seq(50,250,50),col="blue",lty=3) abline(h=0,v=0,col="blue") n <- 1000; for(i in 0:n) { x <- x11+(x12-x11)/n*i points(x,integrate(h,0,x)$value, pch=".") } text(5.5,110," strada (m) in funz. di t (s)",adj=0,cex=1,font=2) text(13.5,9,"s",font=2); text(0.5,241,"m",font=2) fig02 <- recordPlot(); title(scr,cex.main=0.8); for(i in 1) locator(1) text(3.6,26,"Vediamo meglio la situazione",adj=0,cex=1,font=2); for(i in 1) locator(1) replayPlot(fig02) # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=5) replayPlot(fig01) punti <- function(h,k) { np <- 2e4; po <- x11+runif(np)*(x12-x11); pv <- y11+runif(np)*(y12-y11) for(i in 1:np) if(h(po[i]) > pv[i] & po[i] < k & po[i] > h) points(po[i],pv[i],pch=".",col="red")} n <- 500; for(i in 0:n) { x <- x11+(3-x11)/n*i points(x,h(x), pch=".",cex=3)} punti(0,3); fig01 <- recordPlot(); title(scr,cex.main=0.8) text(7.1,32," in 3 s faccio 30 m",adj=0,cex=1,font=2); text(5,5,"10x3 = 30",font=2) for(i in 1) locator(1); title(scr,cex.main=0.8,col.main="white") # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=405) replayPlot(fig02) n <- 500; for(i in 0:n) { x <- x11+(3-x11)/n*i points(x,integrate(h,0,x)$value, pch=".",cex=3)} fig02 <- recordPlot(); title(scr,cex.main=0.8); text(1,30,"30 m",font=2) for(i in 1) locator(1); title(scr,cex.main=0.8,col.main="white") # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=5) replayPlot(fig01) n <- 500; for(i in 0:n) { x <- 3+(5-3)/n*i points(x,h(x), pch=".",cex=3,col="red")} punti(3,5); fig01 <- recordPlot(); title(scr,cex.main=0.8) text(7.1,32," in 2 s faccio 60 m ",adj=0,cex=1,font=2); text(6.5,5,"30+60",font=2) for(i in 1) locator(1); title(scr,cex.main=0.8,col.main="white") # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=405) replayPlot(fig02) n <- 500; for(i in 0:n) { x <- 3+(5-3)/n*i points(x,integrate(h,0,x)$value, pch=".",cex=3,col="red")} fig02 <- recordPlot(); title(scr,cex.main=0.8); text(2.5,70,"60 m",col="red",font=2) for(i in 1) locator(1); title(scr,cex.main=0.8,col.main="white") # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=5) replayPlot(fig01) n <- 500; for(i in 0:n) { x <- 5+(10-5)/n*i points(x,h(x), pch=".",cex=3,col="blue")} punti(5,10); fig01 <- recordPlot(); title(scr,cex.main=0.8) text(7.1,32," in 5 s faccio 125 m ",adj=0,cex=1,font=2); text(11,15,"30+60+125",font=2) for(i in 1) locator(1); title(scr,cex.main=0.8,col.main="white") # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=405) replayPlot(fig02) n <- 500; for(i in 0:n) { x <- 5+(10-5)/n*i points(x,integrate(h,0,x)$value, pch=".",cex=3,col="blue")} fig02 <- recordPlot(); title(scr,cex.main=0.8); text(4,160,"125 m",col="blue",font=2) for(i in 1) locator(1); title(scr,cex.main=0.8,col.main="white") # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=5) replayPlot(fig01) n <- 500; for(i in 0:n) { x <- 10+(15-10)/n*i points(x,h(x), pch=".",cex=3,col="orange")} fig01 <- recordPlot(); title(scr,cex.main=0.8) text(7.1,32," non percorro strada ",adj=0,cex=1,font=2); for(i in 1) locator(1) title(scr,cex.main=0.8,col.main="white") # dev.off(dev.prev()) dev.new(width=4,height=4,xpos=405) replayPlot(fig02) n <- 500; for(i in 0:n) { x <- 10+(15-10)/n*i points(x,integrate(h,0,x)$value, pch=".",cex=3,col="orange")} fig02 <- recordPlot(); text(7.7,215,"0 m",col="orange",font=2) # text(1.5,220," sposta di lato ",adj=0,cex=1,font=2) # text(1.5,235," prima di cliccare ",adj=0,cex=1,font=2); for(i in 1) locator(1) # windows(5,5); replayPlot(fig01) text(10.1,23," FINE ",adj=0,cex=1.3,font=2) # ALTERNATIVA (più semplice) # source("http://macosa.dima.unige.it/r.R") dev.new(width=8, height=4); rowcol(1,2) a=0; b=15; c=0; d=50; a1=a; b1=b; c1=0; d1=250; x1=3; x2=5; x3=10 h = function(x) ifelse(x < 3,10,ifelse(x < 5,10+20*(x-3),ifelse(x < 10,50-10*(x-5),0))) k = function(t) integral(h, 0,t) Box_(a,b, c,d); graph2(h, a,x1, "black"); type(2.5,45,"F") Box_(a1,b1, c1,d1); type(2.5,225,"area") for(x in seq(a,x1,0.05)) Dot2(x,integral(h, a,x),"seagreen") wait(3) Box_(a,b, c,d); graph2(h, a,x2, "black"); type(2.5,45,"F") Box_(a1,b1, c1,d1); type(2.5,225,"area") for(x in seq(a,x2,0.05)) Dot2(x,integral(h, a,x),"seagreen") wait(3) Box_(a,b, c,d); graph2(h, a,x3, "black"); type(2.5,45,"F") Box_(a1,b1, c1,d1); type(2.5,225,"area") for(x in seq(a,x3,0.05)) Dot2(x,integral(h, a,x),"seagreen") wait(3) Box_(a,b, c,d); graph2(h, a,b, "black"); type(2.5,45,"F") Box_(a1,b1, c1,d1); type(2.5,225,"area") for(x in seq(a,b,0.05)) Dot2(x,integralB(h, a,x),"seagreen")