# 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")